blob: 8c497b9924eaef9d3057804d8799491ec942f0db [file] [log] [blame]
Elliott Hughes82be86d2017-09-20 17:00:17 -07001 _ _ ____ _
2 ___| | | | _ \| |
3 / __| | | | |_) | |
4 | (__| |_| | _ <| |___
5 \___|\___/|_| \_\_____|
Lucas Eckels9bd90e62012-08-06 15:07:02 -07006
Elliott Hughes82be86d2017-09-20 17:00:17 -07007 Changelog
Lucas Eckels9bd90e62012-08-06 15:07:02 -07008
Haibo Huang21926d52019-01-08 14:27:10 -08009Version 7.63.0 (12 Dec 2018)
10
11Daniel Stenberg (12 Dec 2018)
12- RELEASE-NOTES: 7.63.0
13
14- THANKS: from the curl 7.62.0 cycle
15
16- test1519: use lib1518 and test CURLINFO_REDIRECT_URL more
17
18- Curl_follow: extract the Location: header field unvalidated
19
20 ... when not actually following the redirect. Otherwise we return error
21 for this and an application can't extract the value.
22
23 Test 1518 added to verify.
24
25 Reported-by: Pavel Pavlov
26 Fixes #3340
27 Closes #3364
28
29- multi: convert two timeout variables to timediff_t
30
31 The time_t type is unsigned on some systems and these variables are used
32 to hold return values from functions that return timediff_t
33 already. timediff_t is always a signed type.
34
35 Closes #3363
36
37- delta: use --diff-filter on the git diff-tree invokes
38
39 Suggested-by: Dave Reisner
40
41Patrick Monnerat (11 Dec 2018)
42- documentation: curl_formadd field and file names are now escaped
43
44 Prior to 7.56.0, fieldnames and filenames were set in Content-Disposition
45 header without special processing: this may lead to invalid RFC 822
46 quoted-strings.
47 7.56.0 introduces escaping of backslashes and double quotes in these names:
48 mention it in the documentation.
49
50 Reported-by: daboul on github
51 Closes #3361
52
53Daniel Stenberg (11 Dec 2018)
54- scripts/delta: show repo delta info from last release
55
56 ... where "last release" should be the git tag in the repo.
57
58Daniel Gustafsson (11 Dec 2018)
59- tests: add urlapi unittest
60
61 This adds a new unittest intended to cover the internal functions in
62 the urlapi code, starting with parse_port(). In order to avoid name
63 collisions in debug builds, parse_port() is renamed Curl_parse_port()
64 since it will be exported.
65
66 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
67 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
68
69- urlapi: fix portnumber parsing for ipv6 zone index
70
71 An IPv6 URL which contains a zone index includes a '%%25<zode id>'
72 string before the ending ']' bracket. The parsing logic wasn't set
73 up to cope with the zone index however, resulting in a malformed url
74 error being returned. Fix by breaking the parsing into two stages
75 to correctly handle the zone index.
76
77 Closes #3355
78 Closes #3319
79 Reported-by: tonystz on Github
80 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
81 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
82
83Daniel Stenberg (11 Dec 2018)
84- [Jay Satiro brought this change]
85
86 http: fix HTTP auth to include query in URI
87
88 - Include query in the path passed to generate HTTP auth.
89
90 Recent changes to use the URL API internally (46e1640, 7.62.0)
91 inadvertently broke authentication URIs by omitting the query.
92
93 Fixes https://github.com/curl/curl/issues/3353
94 Closes #3356
95
96- [Michael Kaufmann brought this change]
97
98 http: don't set CURLINFO_CONDITION_UNMET for http status code 204
99
100 The http status code 204 (No Content) should not change the "condition
101 unmet" flag. Only the http status code 304 (Not Modified) should do
102 this.
103
104 Closes #359
105
106- [Samuel Surtees brought this change]
107
108 ldap: fix LDAP URL parsing regressions
109
110 - Match URL scheme with LDAP and LDAPS
111 - Retrieve attributes, scope and filter from URL query instead
112
113 Regression brought in 46e164069d1a5230 (7.62.0)
114
115 Closes #3362
116
117- RELEASE-NOTES: synced
118
119- [Stefan Kanthak brought this change]
120
121 (lib)curl.rc: fixup for minor bugs
122
123 All resources defined in lib/libcurl.rc and curl.rc are language
124 neutral.
125
126 winbuild/MakefileBuild.vc ALWAYS defines the macro DEBUGBUILD, so the
127 ifdef's in line 33 of lib/libcurl.rc and src/curl.rc are wrong.
128
129 Replace the hard-coded constants in both *.rc files with #define'd
130 values.
131
132 Thumbs-uped-by: Rod Widdowson, Johannes Schindelin
133 URL: https://curl.haxx.se/mail/lib-2018-11/0000.html
134 Closes #3348
135
136- test329: verify cookie max-age=0 immediate expiry
137
138- cookies: expire "Max-Age=0" immediately
139
140 Reported-by: Jeroen Ooms
141 Fixes #3351
142 Closes #3352
143
144- [Johannes Schindelin brought this change]
145
146 Upon HTTP_1_1_REQUIRED, retry the request with HTTP/1.1
147
148 This is a companion patch to cbea2fd2c (NTLM: force the connection to
149 HTTP/1.1, 2018-12-06): with NTLM, we can switch to HTTP/1.1
150 preemptively. However, with other (Negotiate) authentication it is not
151 clear to this developer whether there is a way to make it work with
152 HTTP/2, so let's try HTTP/2 first and fall back in case we encounter the
153 error HTTP_1_1_REQUIRED.
154
155 Note: we will still keep the NTLM workaround, as it avoids an extra
156 round trip.
157
158 Daniel Stenberg helped a lot with this patch, in particular by
159 suggesting to introduce the Curl_h2_http_1_1_error() function.
160
161 Closes #3349
162
163 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
164
165- [Ben Greear brought this change]
166
167 openssl: fix unused variable compiler warning with old openssl
168
169 URL: https://curl.haxx.se/mail/lib-2018-11/0055.html
170
171 Closes #3347
172
173- [Johannes Schindelin brought this change]
174
175 NTLM: force the connection to HTTP/1.1
176
177 Since v7.62.0, cURL tries to use HTTP/2 whenever the server announces
178 the capability. However, NTLM authentication only works with HTTP/1.1,
179 and will likely remain in that boat (for details, see
180 https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/http2-on-iis#when-is-http2-not-supported).
181
182 When we just found out that we want to use NTLM, and when the current
183 connection runs in HTTP/2 mode, let's force the connection to be closed
184 and to be re-opened using HTTP/1.1.
185
186 Fixes https://github.com/curl/curl/issues/3341.
187 Closes #3345
188
189 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
190
191- [Johannes Schindelin brought this change]
192
193 curl_global_sslset(): id == -1 is not necessarily an error
194
195 It is allowed to call that function with id set to -1, specifying the
196 backend by the name instead. We should imitate what is done further down
197 in that function to allow for that.
198
199 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
200
201 Closes #3346
202
203Johannes Schindelin (6 Dec 2018)
204- .gitattributes: make tabs in indentation a visible error
205
206 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
207
208Daniel Stenberg (6 Dec 2018)
209- RELEASE-NOTES: synced
210
211- doh: fix memory leak in OOM situation
212
213 Reviewed-by: Daniel Gustafsson
214 Closes #3342
215
216- doh: make it work for h2-disabled builds too
217
218 Reported-by: dtmsecurity at github
219 Fixes #3325
220 Closes #3336
221
222- packages: remove old leftover files and dirs
223
224 This subdir has mostly become an attic of never-used cruft from the
225 past.
226
227 Closes #3331
228
229- [Gergely Nagy brought this change]
230
231 openssl: do not use file BIOs if not requested
232
233 Moves the file handling BIO calls to the branch of the code where they
234 are actually used.
235
236 Closes #3339
237
238- [Paul Howarth brought this change]
239
240 nss: Fix compatibility with nss versions 3.14 to 3.15
241
242- [Paul Howarth brought this change]
243
244 nss: Improve info message when falling back SSL protocol
245
246 Use descriptive text strings rather than decimal numbers.
247
248- [Paul Howarth brought this change]
249
250 nss: Fall back to latest supported SSL version
251
252 NSS may be built without support for the latest SSL/TLS versions,
253 leading to "SSL version range is not valid" errors when the library
254 code supports a recent version (e.g. TLS v1.3) but it has explicitly
255 been disabled.
256
257 This change adjusts the maximum SSL version requested by libcurl to
258 be the maximum supported version at runtime, as long as that version
259 is at least as high as the minimum version required by libcurl.
260
261 Fixes #3261
262
263Daniel Gustafsson (3 Dec 2018)
264- travis: enable COPYRIGHTYEAR extended warning
265
266 The extended warning for checking incorrect COPYRIGHTYEAR is quite
267 expensive to run, so rather than expecting every developer to do it
268 we ensure it's turned on locally for Travis.
269
270- checksrc: add COPYRIGHTYEAR check
271
272 Forgetting to bump the year in the copyright clause when hacking has
273 been quite common among curl developers, but a traditional checksrc
274 check isn't a good fit as it would penalize anyone hacking on January
275 1st (among other things). This adds a more selective COPYRIGHTYEAR
276 check which intends to only cover the currently hacked on changeset.
277
278 The check for updated copyright year is currently not enforced on all
279 files but only on files edited and/or committed locally. This is due to
280 the amount of files which aren't updated with their correct copyright
281 year at the time of their respective commit.
282
283 To further avoid running this expensive check for every developer, it
284 adds a new local override mode for checksrc where a .checksrc file can
285 be used to turn on extended warnings locally.
286
287 Closes #3303
288 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
289
290Daniel Stenberg (3 Dec 2018)
291- CHECKSRC.md: document more warnings
292
293 Closes #3335
294 [ci skip]
295
296- RELEASE-NOTES: synced
297
298- SECURITY-PROCESS: bountygraph shuts down
299
300 This backpedals back the documents to the state before bountygraph.
301
302 Closes #3311
303
304- curl: fix memory leak reading --writeout from file
305
306 If another string had been set first, the writout function for reading
307 the syntax from file would leak the previously allocated memory.
308
309 Reported-by: Brian Carpenter
310 Fixes #3322
311 Closes #3330
312
313- tool_main: rename function to make it unique and better
314
315 ... there's already another function in the curl tool named
316 free_config_fields!
317
318Daniel Gustafsson (29 Nov 2018)
319- TODO: remove CURLOPT_DNS_USE_GLOBAL_CACHE entry
320
321 Commit 7c5837e79280e6abb3ae143dfc49bca5e74cdd11 deprecated the option
322 making it a manual code-edit operation to turn it back on. The removal
323 process has thus started and is now documented in docs/DEPRECATE.md so
324 remove from the TODO to avoid anyone looking for something to pick up
325 spend cycles on an already in-progress entry.
326
327 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
328
329Jay Satiro (29 Nov 2018)
330- [Sevan Janiyan brought this change]
331
332 connect: fix building for recent versions of Minix
333
334 EBADIOCTL doesn't exist on more recent Minix.
335 There have also been substantial changes to the network stack.
336 Fixes build on Minix 3.4rc
337
338 Closes https://github.com/curl/curl/pull/3323
339
340- [Konstantin Kushnir brought this change]
341
342 CMake: fix MIT/Heimdal Kerberos detection
343
344 - fix syntax error in FindGSS.cmake
345 - correct krb5 include directory. FindGSS exports
346 "GSS_INCLUDE_DIR" variable.
347
348 Closes https://github.com/curl/curl/pull/3316
349
350Daniel Stenberg (28 Nov 2018)
351- test328: verify Content-Encoding: none
352
353 Because of issue #3315
354
355 Closes #3317
356
357- [James Knight brought this change]
358
359 configure: include all libraries in ssl-libs fetch
360
361 When compiling a collection of SSL libraries to link against (SSL_LIBS),
362 ensure all libraries are included. The call `--libs-only-l` can produce
363 only a subset of found in a `--libs` call (e.x. pthread may be excluded).
364 Adding `--libs-only-other` ensures other libraries are also included in
365 the list. This corrects select build environments compiling against a
366 static version of OpenSSL. Before the change, the following could be
367 observed:
368
369 checking for openssl options with pkg-config... found
370 configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -lcrypto -lz -ldl "
371 configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight/<workdir>/staging/usr/lib -L/home/jdknight/<workdir>/staging/usr/lib "
372 configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight/<workdir>/staging/usr/include "
373 checking for HMAC_Update in -lcrypto... no
374 checking for HMAC_Init_ex in -lcrypto... no
375 checking OpenSSL linking with -ldl... no
376 checking OpenSSL linking with -ldl and -lpthread... no
377 configure: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.
378 configure: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.
379 ...
380 SSL support: no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )
381 ...
382
383 And include the other libraries when compiling SSL_LIBS succeeds with:
384
385 checking for openssl options with pkg-config... found
386 configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -pthread -lcrypto -lz -ldl -pthread "
387 configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight/<workdir>/staging/usr/lib -L/home/jdknight/<workdir>/staging/usr/lib "
388 configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight/<workdir>/staging/usr/include "
389 checking for HMAC_Update in -lcrypto... yes
390 checking for SSL_connect in -lssl... yes
391 ...
392 SSL support: enabled (OpenSSL)
393 ...
394
395 Signed-off-by: James Knight <james.d.knight@live.com>
396 Closes #3193
397
398Daniel Gustafsson (26 Nov 2018)
399- doh: fix typo in infof call
400
401 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
402
403- cmdline-opts/gen.pl: define the correct varname
404
405 The variable definition had a small typo making it declare another
406 variable then the intended.
407
408 Closes #3304
409 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
410
411Daniel Stenberg (25 Nov 2018)
412- RELEASE-NOTES: synced
413
414- curl_easy_perform: fix timeout handling
415
416 curl_multi_wait() was erroneously used from within
417 curl_easy_perform(). It could lead to it believing there was no socket
418 to wait for and then instead sleep for a while instead of monitoring the
419 socket and then miss acting on that activity as swiftly as it should
420 (causing an up to 1000 ms delay).
421
422 Reported-by: Antoni Villalonga
423 Fixes #3305
424 Closes #3306
425 Closes #3308
426
427- CURLOPT_WRITEFUNCTION.3: spell out that it gets called many times
428
429- cookies: create the cookiejar even if no cookies to save
430
431 Important for when the file is going to be read again and thus must not
432 contain old contents!
433
434 Adds test 327 to verify.
435
436 Reported-by: daboul on github
437 Fixes #3299
438 Closes #3300
439
440- checksrc: ban snprintf use, add command line flag to override warns
441
442- snprintf: renamed and we now only use msnprintf()
443
444 The function does not return the same value as snprintf() normally does,
445 so readers may be mislead into thinking the code works differently than
446 it actually does. A different function name makes this easier to detect.
447
448 Reported-by: Tomas Hoger
449 Assisted-by: Daniel Gustafsson
450 Fixes #3296
451 Closes #3297
452
453- [Tobias Hintze brought this change]
454
455 test: update test20/1322 for eglibc bug workaround
456
457 The tests 20 and 1322 are using getaddrinfo of libc for resolving. In
458 eglibc-2.19 there is a memory leakage and invalid free bug which
459 surfaces in some special circumstances (PF_UNSPEC hint with invalid or
460 non-existent names). The valgrind runs in testing fail in these
461 situations.
462
463 As the tests 20/1322 are not specific on either protocol (IPv4/IPv6)
464 this commit changes the hints to IPv4 protocol by passing `--ipv4` flag
465 on the tests' command line. This prevents the valgrind failures.
466
467- [Tobias Hintze brought this change]
468
469 host names: allow trailing dot in name resolve, then strip it
470
471 Delays stripping of trailing dots to after resolving the hostname.
472
473 Fixes #3022
474 Closes #3222
475
476- [UnknownShadow200 brought this change]
477
478 CURLOPT_HEADERFUNCTION.3: match 'nitems' name in synopsis and description
479
480 Closes #3295
481
482Daniel Gustafsson (21 Nov 2018)
483- configure: Fix typo in comment
484
485Michael Kaufmann (21 Nov 2018)
486- openssl: support session resume with TLS 1.3
487
488 Session resumption information is not available immediately after a TLS 1.3
489 handshake. The client must wait until the server has sent a session ticket.
490
491 Use OpenSSL's "new session" callback to get the session information and put it
492 into curl's session cache. For TLS 1.3 sessions, this callback will be invoked
493 after the server has sent a session ticket.
494
495 The "new session" callback is invoked only if OpenSSL's session cache is
496 enabled, so enable it and use the "external storage" mode which lets curl manage
497 the contents of the session cache.
498
499 A pointer to the connection data and the sockindex are now saved as "SSL extra
500 data" to make them available to the callback.
501
502 This approach also works for old SSL/TLS versions and old OpenSSL versions.
503
504 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
505
506 Fixes #3202
507 Closes #3271
508
509- ssl: fix compilation with OpenSSL 0.9.7
510
511 - ENGINE_cleanup() was used without including "openssl/engine.h"
512 - enable engine support for OpenSSL 0.9.7
513
514 Closes #3266
515
516Daniel Stenberg (21 Nov 2018)
517- openssl: disable TLS renegotiation with BoringSSL
518
519 Since we're close to feature freeze, this change disables this feature
520 with an #ifdef. Define ALLOW_RENEG at build-time to enable.
521
522 This could be converted to a bit for CURLOPT_SSL_OPTIONS to let
523 applications opt-in this.
524
525 Concern-raised-by: David Benjamin
526 Fixes #3283
527 Closes #3293
528
529- [Romain Fliedel brought this change]
530
531 ares: remove fd from multi fd set when ares is about to close the fd
532
533 When using c-ares for asyn dns, the dns socket fd was silently closed
534 by c-ares without curl being aware. curl would then 'realize' the fd
535 has been removed at next call of Curl_resolver_getsock, and only then
536 notify the CURLMOPT_SOCKETFUNCTION to remove fd from its poll set with
537 CURL_POLL_REMOVE. At this point the fd is already closed.
538
539 By using ares socket state callback (ARES_OPT_SOCK_STATE_CB), this
540 patch allows curl to be notified that the fd is not longer needed
541 for neither for write nor read. At this point by calling
542 Curl_multi_closed we are able to notify multi with CURL_POLL_REMOVE
543 before the fd is actually closed by ares.
544
545 In asyn-ares.c Curl_resolver_duphandle we can't use ares_dup anymore
546 since it does not allow passing a different sock_state_cb_data
547
548 Closes #3238
549
550- [Romain Fliedel brought this change]
551
552 examples/ephiperfifo: report error when epoll_ctl fails
553
554Daniel Gustafsson (20 Nov 2018)
555- [pkubaj brought this change]
556
557 ntlm: Remove redundant ifdef USE_OPENSSL
558
559 lib/curl_ntlm.c had code that read as follows:
560
561 #ifdef USE_OPENSSL
562 # ifdef USE_OPENSSL
563 # else
564 # ..
565 # endif
566 #endif
567
568 Remove the redundant USE_OPENSSL along with #else (it's not possible to
569 reach it anyway). The removed construction is a leftover from when the
570 SSLeay support was removed.
571
572 Closes #3269
573 Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
574 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
575
576Daniel Stenberg (20 Nov 2018)
577- [Han Han brought this change]
578
579 ssl: replace all internal uses of CURLE_SSL_CACERT
580
581 Closes #3291
582
583Han Han (19 Nov 2018)
584- docs: add more description to unified ssl error codes
585
586- curle: move deprecated error code to ifndef block
587
588Patrick Monnerat (19 Nov 2018)
589- os400: add CURLOPT_CURLU to ILE/RPG binding.
590
591- os400: Add curl_easy_conn_upkeep() to ILE/RPG binding.
592
593- os400: fix return type of curl_easy_pause() in ILE/RPG binding.
594
595Daniel Stenberg (19 Nov 2018)
596- RELEASE-NOTES: synced
597
598- impacket: add LICENSE
599
600 The license for the impacket package was not in our tree.
601
602 Imported now from upstream's
603 https://github.com/SecureAuthCorp/impacket/blob/master/LICENSE
604
605 Reported-by: infinnovation-dev on github
606 Fixes #3276
607 Closes #3277
608
609Daniel Gustafsson (18 Nov 2018)
610- tool_doswin: Fix uninitialized field warning
611
612 The partial struct initialization in 397664a065abffb7c3445ca9 caused
613 a warning on uninitialized MODULEENTRY32 struct members:
614
615 /src/tool_doswin.c:681:3: warning: missing initializer for field
616 'th32ModuleID' of 'MODULEENTRY32 {aka struct tagMODULEENTRY32}'
617 [-Wmissing-field-initializers]
618
619 This is sort of a bogus warning as the remaining members will be set
620 to zero by the compiler, as all omitted members are. Nevertheless,
621 remove the warning by omitting all members and setting the dwSize
622 members explicitly.
623
624 Closes #3254
625 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
626 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
627
628- openssl: Remove SSLEAY leftovers
629
630 Commit 709cf76f6bb7dbac deprecated USE_SSLEAY, as curl since long isn't
631 compatible with the SSLeay library. This removes the few leftovers that
632 were omitted in the less frequently used platform targets.
633
634 Closes #3270
635 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
636
637Daniel Stenberg (16 Nov 2018)
638- [Elia Tufarolo brought this change]
639
640 http_negotiate: do not close connection until negotiation is completed
641
642 Fix HTTP POST using CURLAUTH_NEGOTIATE.
643
644 Closes #3275
645
646- pop3: only do APOP with a valid timestamp
647
648 Brought-by: bobmitchell1956 on github
649 Fixes #3278
650 Closes #3279
651
652Jay Satiro (16 Nov 2018)
653- [Peter Wu brought this change]
654
655 openssl: do not log excess "TLS app data" lines for TLS 1.3
656
657 The SSL_CTX_set_msg_callback callback is not just called for the
658 Handshake or Alert protocols, but also for the raw record header
659 (SSL3_RT_HEADER) and the decrypted inner record type
660 (SSL3_RT_INNER_CONTENT_TYPE). Be sure to ignore the latter to avoid
661 excess debug spam when using `curl -v` against a TLSv1.3-enabled server:
662
663 * TLSv1.3 (IN), TLS app data, [no content] (0):
664
665 (Following this message, another callback for the decrypted
666 handshake/alert messages will be be present anyway.)
667
668 Closes https://github.com/curl/curl/pull/3281
669
670Marc Hoersken (15 Nov 2018)
671- tests: disable SO_EXCLUSIVEADDRUSE for stunnel on Windows
672
673 SO_EXCLUSIVEADDRUSE is on by default on Vista or newer,
674 but does not work together with SO_REUSEADDR being on.
675
676 The default changes were made with stunnel 5.34 and 5.35.
677
678Daniel Stenberg (13 Nov 2018)
679- [Kamil Dudka brought this change]
680
681 nss: remove version selecting dead code
682
683 Closes #3262
684
685- nss: set default max-tls to 1.3/1.2
686
687 Fixes #3261
688
689Daniel Gustafsson (13 Nov 2018)
690- tool_cb_wrt: Silence function cast compiler warning
691
692 Commit 5bfaa86ceb3c2a9ac474a928e748c4a86a703b33 introduced a new
693 compiler warning on Windows cross compilation with GCC. See below
694 for an example of the warning from the autobuild logs (whitespace
695 edited to fit):
696
697 /src/tool_cb_wrt.c:175:9: warning: cast from function call of type
698 'intptr_t {aka long long int}' to non-matching type 'void *'
699 [-Wbad-function-cast]
700 (HANDLE) _get_osfhandle(fileno(outs->stream)),
701 ^
702
703 Store the return value from _get_osfhandle() in an intermediate
704 variable and cast the variable in WriteConsoleW() rather than the
705 function call directly to avoid a compiler warning.
706
707 In passing, also add inspection of the MultiByteToWideChar() return
708 value and return failure in case an error is reported.
709
710 Closes #3263
711 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
712 Reviewed-by: Viktor Szakats <commit@vszakats.net>
713
714Daniel Stenberg (12 Nov 2018)
715- nss: fix fallthrough comment to fix picky compiler warning
716
717- docs: expanded on some CURLU details
718
719- [Tim Rühsen brought this change]
720
721 ftp: avoid two unsigned int overflows in FTP listing parser
722
723 Curl_ftp_parselist: avoid unsigned integer overflows
724
725 The overflow has no real world impact, just avoid it for "best
726 practice".
727
728 Closes #3225
729
730- curl: --local-port range was not "including"
731
732 The end port number in a given range was not included in the range used,
733 as it is documented to be.
734
735 Reported-by: infinnovation-dev on github
736 Fixes #3251
737 Closes #3255
738
739- [Jérémy Rocher brought this change]
740
741 openssl: support BoringSSL TLS renegotiation
742
743 As per BoringSSL porting documentation [1], BoringSSL rejects peer
744 renegotiations by default.
745
746 curl fails when trying to authenticate to server through client
747 certificate if it is requested by server after the initial TLS
748 handshake.
749
750 Enable renegotiation by default with BoringSSL to get same behavior as
751 with OpenSSL. This is done by calling SSL_set_renegotiate_mode [2]
752 which was introduced in commit 1d5ef3bb1eb9 [3].
753
754 1 - https://boringssl.googlesource.com/boringssl/+/HEAD/PORTING.md#tls-renegotiation
755 2 - https://boringssl.googlesource.com/boringssl/+/master/include/openssl/ssl.h#3482
756 3 - https://boringssl.googlesource.com/boringssl/+/1d5ef3bb1eb97848617db5e7d633d735a401df86
757
758 Signed-off-by: Jérémy Rocher <rocher.jeremy@gmail.com>
759 Fixes #3258
760 Closes #3259
761
762- HISTORY: add some milestones
763
764 Added a few of the more notable milestones in curl history that were
765 missing. Primarily more recent ones but I also noted some older that
766 could be worth mentioning.
767
768 [ci skip]
769 Closes #3257
770
771Daniel Gustafsson (9 Nov 2018)
772- KNOWN_BUGS: add --proxy-any connection issue
773
774 Add the identified issue with --proxy-any and proxy servers which
775 advertise authentication schemes other than the supported one.
776
777 Closes #876
778 Closes #3250
779 Reported-by: NTMan on Github
780 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
781
782Daniel Stenberg (9 Nov 2018)
783- [Jim Fuller brought this change]
784
785 setopt: add CURLOPT_CURLU
786
787 Allows an application to pass in a pre-parsed URL via a URL handle.
788
789 Closes #3227
790
791- [Gisle Vanem brought this change]
792
793 docs: ESCape "\n" codes
794
795 Groff / Troff will display a:
796 printaf("Errno: %ld\n", error);
797 as:
798 printf("Errno: %ld0, error);
799
800 when a "\n" is not escaped. Use "\\n" instead.
801
802 Closes #3246
803
804- curl: --local-port fix followup
805
806 Regression by 52db54869e6.
807
808 Reported-by: infinnovation-dev on github
809 Fixes #3248
810 Closes #3249
811
812GitHub (7 Nov 2018)
813- [Gisle Vanem brought this change]
814
815 More "\n" ESCaping
816
817Daniel Stenberg (7 Nov 2018)
818- RELEASE-NOTES: synced
819
820- curl: fix --local-port integer overflow
821
822 The tool's local port command line range parser didn't check for integer
823 overflows and could pass "weird" data to libcurl for this option.
824 libcurl however, has a strict range check for the values so it rejects
825 anything outside of the accepted range.
826
827 Reported-by: Brian Carpenter
828 Closes #3242
829
830- curl: correct the switch() logic in ourWriteOut
831
832 Follow-up to e431daf013, as I did the wrong correction for a compiler
833 warning. It should be a break and not a fall-through.
834
835 Pointed-out-by: Frank Gevaerts
836
837- [Frank Gevaerts brought this change]
838
839 curl: add %{stderr} and %{stdout} for --write-out
840
841 Closes #3115
842
843Daniel Gustafsson (7 Nov 2018)
844- winssl: be consistent in Schannel capitalization
845
846 The productname from Microsoft is "Schannel", but in infof/failf
847 reporting we use "schannel". This removes different versions.
848
849 Closes #3243
850 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
851
852Daniel Stenberg (7 Nov 2018)
853- TODO: Have the URL API offer IDN decoding
854
855 Similar to how URL decoding/encoding is done, we could have URL
856 functions to convert IDN host names to punycode.
857
858 Suggested-by: Alexey Melnichuk
859 Closes #3232
860
861- urlapi: only skip encoding the first '=' with APPENDQUERY set
862
863 APPENDQUERY + URLENCODE would skip all equals signs but now it only skip
864 encoding the first to better allow "name=content" for any content.
865
866 Reported-by: Alexey Melnichuk
867 Fixes #3231
868 Closes #3231
869
870- url: a short host name + port is not a scheme
871
872 The function identifying a leading "scheme" part of the URL considered a
873 few letters ending with a colon to be a scheme, making something like
874 "short:80" to become an unknown scheme instead of a short host name and
875 a port number.
876
877 Extended test 1560 to verify.
878
879 Also fixed test203 to use file_pwd to make it get the correct path on
880 windows. Removed test 2070 since it was a duplicate of 203.
881
882 Assisted-by: Marcel Raad
883 Reported-by: Hagai Auro
884 Fixes #3220
885 Fixes #3233
886 Closes #3223
887 Closes #3235
888
889- [Sangamkar brought this change]
890
891 libcurl: stop reading from paused transfers
892
893 In the transfer loop it would previously not acknwledge the pause bit
894 and continue until drained or loop ended.
895
896 Closes #3240
897
898Jay Satiro (6 Nov 2018)
899- tool: add undocumented option --dump-module-paths for win32
900
901 - Add an undocumented diagnostic option for Windows to show the full
902 paths of all loaded modules regardless of whether or not libcurl
903 initialization succeeds.
904
905 This is needed so that in the CI we can get a list of all DLL
906 dependencies after initialization (when they're most likely to have
907 finished loading) and then package them as artifacts so that a
908 functioning build can be downloaded. Also I imagine it may have some use
909 as a diagnostic for help requests.
910
911 Ref: https://github.com/curl/curl/pull/3103
912
913 Closes https://github.com/curl/curl/pull/3208
914
915- curl_multibyte: fix a malloc overcalculation
916
917 Prior to this change twice as many bytes as necessary were malloc'd when
918 converting wchar to UTF8. To allay confusion in the future I also
919 changed the variable name for the amount of bytes from len to bytes.
920
921 Closes https://github.com/curl/curl/pull/3209
922
923Michael Kaufmann (5 Nov 2018)
924- netrc: don't ignore the login name specified with "--user"
925
926 - for "--netrc", don't ignore the login/password specified with "--user",
927 only ignore the login/password in the URL.
928 This restores the netrc behaviour of curl 7.61.1 and earlier.
929 - fix the documentation of CURL_NETRC_REQUIRED
930 - improve the detection of login/password changes when reading .netrc
931 - don't read .netrc if both login and password are already set
932
933 Fixes #3213
934 Closes #3224
935
936Patrick Monnerat (5 Nov 2018)
937- OS400: add URL API ccsid wrappers and sync ILE/RPG bindings
938
939Daniel Stenberg (5 Nov 2018)
940- [Yasuhiro Matsumoto brought this change]
941
942 curl: fixed UTF-8 in current console code page (Windows)
943
944 Fixes #3211
945 Fixes #3175
946 Closes #3212
947
948- TODO: 2.6 multi upkeep
949
950 Closes #3199
951
952Daniel Gustafsson (5 Nov 2018)
953- unittest: make 1652 stable across collations
954
955 The previous coding used a format string whose output depended on the
956 current locale of the environment running the test. Since the gist of
957 the test is to have a format string, with the actual formatting being
958 less important, switch to a more stable formatstring with decimals.
959
960 Reported-by: Marcel Raad
961 Closes #3234
962 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
963 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
964
965Daniel Stenberg (5 Nov 2018)
966- Revert "url: a short host name + port is not a scheme"
967
968 This reverts commit 226cfa8264cd979eff3fd52c0f3585ef095e7cf2.
969
970 This commit caused test failures on appveyor/windows. Work on fixing them is
971 in #3235.
972
973- symbols-in-versions: add missing CURLU_ symbols
974
975 ...and fix symbol-scan.pl to also scan urlapi.h
976
977 Reported-by: Alexey Melnichuk
978 Fixes #3226
979 Closes #3230
980
981Daniel Gustafsson (3 Nov 2018)
982- infof: clearly indicate truncation
983
984 The internal buffer in infof() is limited to 2048 bytes of payload plus
985 an additional byte for NULL termination. Servers with very long error
986 messages can however cause truncation of the string, which currently
987 isn't very clear, and leads to badly formatted output.
988
989 This appends a "...\n" (or just "..." in case the format didn't with a
990 newline char) marker to the end of the string to clearly show
991 that it has been truncated.
992
993 Also include a unittest covering infof() to try and catch any bugs
994 introduced in this quite important function.
995
996 Closes #3216
997 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
998 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
999
1000Michael Kaufmann (3 Nov 2018)
1001- tool_getparam: fix some comments
1002
1003Daniel Stenberg (3 Nov 2018)
1004- url: a short host name + port is not a scheme
1005
1006 The function identifying a leading "scheme" part of the URL considered a few
1007 letters ending with a colon to be a scheme, making something like "short:80"
1008 to become an unknown scheme instead of a short host name and a port number.
1009
1010 Extended test 1560 to verify.
1011
1012 Reported-by: Hagai Auro
1013 Fixes #3220
1014 Closes #3223
1015
1016- URL: fix IPv6 numeral address parser
1017
1018 Regression from 46e164069d1a52. Extended test 1560 to verify.
1019
1020 Reported-by: tpaukrt on github
1021 Fixes #3218
1022 Closes #3219
1023
1024- travis: remove curl before a normal build
1025
1026 on Linux. To make sure the test suite runs with its newly build tool and
1027 doesn't require an external one present.
1028
1029 Bug: #3198
1030 Closes #3200
1031
1032- [Tim Rühsen brought this change]
1033
1034 mprintf: avoid unsigned integer overflow warning
1035
1036 The overflow has no real world impact.
1037 Just avoid it for "best practice".
1038
1039 Code change suggested by "The Infinnovation Team" and Daniel Stenberg.
1040 Closes #3184
1041
1042- Curl_follow: accept non-supported schemes for "fake" redirects
1043
1044 When not actually following the redirect and the target URL is only
1045 stored for later retrieval, curl always accepted "non-supported"
1046 schemes. This was a regression from 46e164069d1a5230.
1047
1048 Reported-by: Brad King
1049 Fixes #3210
1050 Closes #3215
1051
1052Daniel Gustafsson (2 Nov 2018)
1053- openvms: fix example name
1054
1055 Commit efc696a2e09225bfeab4 renamed persistant.c to persistent.c to
1056 fix the typo in the name, but missed to update the OpenVMS package
1057 files which still looked for the old name.
1058
1059 Closes #3217
1060 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1061 Reviewed-by: Viktor Szakats <commit@vszakats.net>
1062
1063Daniel Stenberg (1 Nov 2018)
1064- configure: show CFLAGS, LDFLAGS etc in summary
1065
1066 To make it easier to understand other people's and remote builds etc.
1067
1068 Closes #3207
1069
1070- version: bump for next cycle
1071
1072- axtls: removed
1073
1074 As has been outlined in the DEPRECATE.md document, the axTLS code has
1075 been disabled for 6 months and is hereby removed.
1076
1077 Use a better supported TLS library!
1078
1079 Assisted-by: Daniel Gustafsson
1080 Closes #3194
1081
1082- [marcosdiazr brought this change]
1083
1084 schannel: make CURLOPT_CERTINFO support using Issuer chain
1085
1086 Closes #3197
1087
1088- travis: build with sanitize=address,undefined,signed-integer-overflow
1089
1090 ... using clang
1091
1092 Closes #3190
1093
1094- schannel: use Curl_ prefix for global private symbols
1095
1096 Curl_verify_certificate() must use the Curl_ prefix since it is globally
1097 available in the lib and otherwise steps outside of our namespace!
1098
1099 Closes #3201
1100
1101Kamil Dudka (1 Nov 2018)
1102- tests: drop http_pipe.py script no longer used
1103
1104 It is unused since commit f7208df7d9d5cd5e15e2d89237e828f32b63f135.
1105
1106 Closes #3204
1107
1108Daniel Stenberg (31 Oct 2018)
1109- runtests: use the local curl for verifying
1110
1111 ... revert the mistaken change brought in commit 8440616f53.
1112
1113 Reported-by: Alessandro Ghedini
1114 Bug: https://curl.haxx.se/mail/lib-2018-10/0118.html
1115
1116 Closes #3198
1117
Elliott Hughesa93fb052018-12-12 14:22:48 -08001118Version 7.62.0 (30 Oct 2018)
1119
1120Daniel Stenberg (30 Oct 2018)
1121- RELEASE-NOTES: 7.62.0
1122
1123- THANKS: 7.62.0 status
1124
1125Daniel Gustafsson (30 Oct 2018)
1126- vtls: add MesaLink to curl_sslbackend enum
1127
1128 MesaLink support was added in commit 57348eb97d1b8fc3742e02c but the
1129 backend was never added to the curl_sslbackend enum in curl/curl.h.
1130 This adds the new backend to the enum and updates the relevant docs.
1131
1132 Closes #3195
1133 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1134
1135Daniel Stenberg (30 Oct 2018)
1136- [Ruslan Baratov brought this change]
1137
1138 cmake: Remove unused CURL_CONFIG_HAS_BEEN_RUN_BEFORE variable
1139
1140 Closes #3191
1141
1142- test2080: verify the fix for CVE-2018-16842
1143
1144- voutf: fix bad arethmetic when outputting warnings to stderr
1145
1146 CVE-2018-16842
1147 Reported-by: Brian Carpenter
1148 Bug: https://curl.haxx.se/docs/CVE-2018-16842.html
1149
1150- [Tuomo Rinne brought this change]
1151
1152 cmake: uniform ZLIB to use USE_ variable and clean curl-config.cmake.in
1153
1154 Closes #3123
1155
1156- [Tuomo Rinne brought this change]
1157
1158 cmake: add find_dependency call for ZLIB to CMake config file
1159
1160- [Tuomo Rinne brought this change]
1161
1162 cmake: add support for transitive ZLIB target
1163
1164- unit1650: fix "null pointer passed as argument 1 to memcmp"
1165
1166 Detected by UndefinedBehaviorSanitizer
1167
1168 Closes #3187
1169
1170- travis: add a "make tidy" build that runs clang-tidy
1171
1172 Closes #3182
1173
1174- unit1300: fix stack-use-after-scope AddressSanitizer warning
1175
1176 Closes #3186
1177
1178- Curl_auth_create_plain_message: fix too-large-input-check
1179
1180 CVE-2018-16839
1181 Reported-by: Harry Sintonen
1182 Bug: https://curl.haxx.se/docs/CVE-2018-16839.html
1183
1184- Curl_close: clear data->multi_easy on free to avoid use-after-free
1185
1186 Regression from b46cfbc068 (7.59.0)
1187 CVE-2018-16840
1188 Reported-by: Brian Carpenter (Geeknik Labs)
1189
1190 Bug: https://curl.haxx.se/docs/CVE-2018-16840.html
1191
1192- [randomswdev brought this change]
1193
1194 system.h: use proper setting with Sun C++ as well
1195
1196 system.h selects the proper Sun settings when __SUNPRO_C is defined. The
1197 Sun compiler does not define it when compiling C++ files. I'm adding a
1198 check also on __SUNPRO_CC to allow curl to work properly also when used
1199 in a C++ project on Sun Solaris.
1200
1201 Closes #3181
1202
1203- rand: add comment to skip a clang-tidy false positive
1204
1205- test1651: unit test Curl_extract_certinfo()
1206
1207 The version used for Gskit, NSS, GnuTLS, WolfSSL and schannel.
1208
1209- x509asn1: always check return code from getASN1Element()
1210
1211- Makefile: add 'tidy' target that runs clang-tidy
1212
1213 Available in the root, src and lib dirs.
1214
1215 Closes #3163
1216
1217- RELEASE-PROCEDURE: adjust the release dates
1218
1219 See: https://curl.haxx.se/mail/lib-2018-10/0107.html
1220
1221Patrick Monnerat (27 Oct 2018)
1222- x509asn1: suppress left shift on signed value
1223
1224 Use an unsigned variable: as the signed operation behavior is undefined,
1225 this change silents clang-tidy about it.
1226
1227 Ref: https://github.com/curl/curl/pull/3163
1228 Reported-By: Daniel Stenberg
1229
1230Michael Kaufmann (27 Oct 2018)
1231- multi: Fix error handling in the SENDPROTOCONNECT state
1232
1233 If Curl_protocol_connect() returns an error code,
1234 handle the error instead of switching to the next state.
1235
1236 Closes #3170
1237
1238Daniel Stenberg (27 Oct 2018)
1239- RELEASE-NOTES: synced
1240
1241- openssl: output the correct cipher list on TLS 1.3 error
1242
1243 When failing to set the 1.3 cipher suite, the wrong string pointer would
1244 be used in the error message. Most often saying "(nil)".
1245
1246 Reported-by: Ricky-Tigg on github
1247 Fixes #3178
1248 Closes #3180
1249
1250- docs/CIPHERS: fix the TLS 1.3 cipher names
1251
1252 ... picked straight from the OpenSSL man page:
1253 https://www.openssl.org/docs/manmaster/man3/SSL_CTX_set_ciphersuites.html
1254
1255 Reported-by: Ricky-Tigg on github
1256 Bug: #3178
1257
1258Marcel Raad (27 Oct 2018)
1259- travis: install gnutls-bin package
1260
1261 This is required for gnutls-serv, which enables a few more tests.
1262
1263 Closes https://github.com/curl/curl/pull/2958
1264
1265Daniel Gustafsson (26 Oct 2018)
1266- ssh: free the session on init failures
1267
1268 Ensure to clear the session object in case the libssh2 initialization
1269 fails.
1270
1271 It could be argued that the libssh2 error function should be called to
1272 get a proper error message in this case. But since the only error path
1273 in libssh2_knownhost_init() is memory a allocation failure it's safest
1274 to avoid since the libssh2 error handling allocates memory.
1275
1276 Closes #3179
1277 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1278
1279Daniel Stenberg (26 Oct 2018)
1280- docs/RELEASE-PROCEDURE: remove old entries, modify the Dec 2018 date
1281
1282 ... I'm moving it up one week due to travels. The rest stays.
1283
1284- [Daniel Gustafsson brought this change]
1285
1286 openssl: make 'done' a proper boolean
1287
1288 Closes #3176
1289
1290- gtls: Values stored to but never read
1291
1292 Detected by clang-tidy
1293
1294 Closes #3176
1295
1296- [Alexey Eremikhin brought this change]
1297
1298 curl.1: --ipv6 mutexes ipv4 (fixed typo)
1299
1300 Fixes #3171
1301 Closes #3172
1302
1303- tool_main: make TerminalSettings static
1304
1305 Reported-by: Gisle Vanem
1306 Bug: https://github.com/curl/curl/commit/becfe1233ff2b6b0c3e1b6a10048b55b68c2539f#commitcomment-31008819
1307 Closes #3161
1308
1309- curl-config.in: remove dependency on bc
1310
1311 Reported-by: Dima Pasechnik
1312 Fixes #3143
1313 Closes #3174
1314
1315- [Gisle Vanem brought this change]
1316
1317 rtmp: fix for compiling with lwIP
1318
1319 Compiling on _WIN32 and with USE_LWIPSOCK, causes this error:
1320 curl_rtmp.c(223,3): error: use of undeclared identifier 'setsockopt'
1321 setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO,
1322 ^
1323 curl_rtmp.c(41,32): note: expanded from macro 'setsockopt'
1324 #define setsockopt(a,b,c,d,e) (setsockopt)(a,b,c,(const char *)d,(int)e)
1325 ^
1326 Closes #3155
1327
1328- configure: remove CURL_CONFIGURE_CURL_SOCKLEN_T
1329
1330 Follow-up to #3166 which did the cmake part of this. This type/define is
1331 not used.
1332
1333 Closes #3168
1334
1335- [Ruslan Baratov brought this change]
1336
1337 cmake: remove unused variables
1338
1339 Remove variables:
1340 * HAVE_SOCKLEN_T
1341 * CURL_SIZEOF_CURL_SOCKLEN_T
1342 * CURL_TYPEOF_CURL_SOCKLEN_T
1343
1344 Closes #3166
1345
1346Michael Kaufmann (25 Oct 2018)
1347- urldata: Fix comment in header
1348
1349 The "connecting" function is used by multiple protocols, not only FTP
1350
1351- netrc: free temporary strings if memory allocation fails
1352
1353 - Change the inout parameters after all needed memory has been
1354 allocated. Do not change them if something goes wrong.
1355 - Free the allocated temporary strings if strdup() fails.
1356
1357 Closes #3122
1358
1359Daniel Stenberg (24 Oct 2018)
1360- [Ruslan Baratov brought this change]
1361
1362 config: Remove unused SIZEOF_VOIDP
1363
1364 Closes #3162
1365
1366- RELEASE-NOTES: synced
1367
1368GitHub (23 Oct 2018)
1369- [Gisle Vanem brought this change]
1370
1371 Fix for compiling with lwIP (3)
1372
1373 lwIP on Windows does not have a WSAIoctl() function.
1374 But it do have a SO_SNDBUF option to lwip_setsockopt(). But it currently does nothing.
1375
1376Daniel Stenberg (23 Oct 2018)
1377- Curl_follow: return better errors on URL problems
1378
1379 ... by making the converter function global and accessible.
1380
1381 Closes #3153
1382
1383- Curl_follow: remove remaining free(newurl)
1384
1385 Follow-up to 05564e750e8f0c. This function no longer frees the passed-in
1386 URL.
1387
1388 Reported-by: Michael Kaufmann
1389 Bug: https://github.com/curl/curl/commit/05564e750e8f0c79016c680f301ce251e6e86155#commitcomm
1390 ent-30985666
1391
1392Daniel Gustafsson (23 Oct 2018)
1393- headers: end all headers with guard comment
1394
1395 Most headerfiles end with a /* <headerguard> */ comment, but it was
1396 missing from some. The comment isn't the most important part of our
1397 code documentation but consistency has an intrinsic value in itself.
1398 This adds header guard comments to the files that were lacking it.
1399
1400 Closes #3158
1401 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
1402 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1403
1404Jay Satiro (23 Oct 2018)
1405- CIPHERS.md: Mention the options used to set TLS 1.3 ciphers
1406
1407 Closes https://github.com/curl/curl/pull/3159
1408
1409Daniel Stenberg (20 Oct 2018)
1410- docs/BUG-BOUNTY: the sponsors actually decide the amount
1411
1412 Retract the previous approach as the sponsors will be the ones to set the
1413 final amounts.
1414
1415 Closes #3152
1416 [ci skip]
1417
1418- multi: avoid double-free
1419
1420 Curl_follow() no longer frees the string. Make sure it happens in the
1421 caller function, like we normally handle allocations.
1422
1423 This bug was introduced with the use of the URL API internally, it has
1424 never been in a release version
1425
1426 Reported-by: Dario Weißer
1427 Closes #3149
1428
1429- multi: make the closure handle "inherit" CURLOPT_NOSIGNAL
1430
1431 Otherwise, closing that handle can still cause surprises!
1432
1433 Reported-by: Martin Ankerl
1434 Fixes #3138
1435 Closes #3147
1436
1437Marcel Raad (19 Oct 2018)
1438- VS projects: add USE_IPV6
1439
1440 The Visual Studio builds didn't use IPv6. Add it to all projects since
1441 Visual Studio 2008, which is verified to build via AppVeyor.
1442
1443 Closes https://github.com/curl/curl/pull/3137
1444
1445- config_win32: enable LDAPS
1446
1447 As done in the autotools and CMake builds by default.
1448
1449 Closes https://github.com/curl/curl/pull/3137
1450
1451Daniel Stenberg (18 Oct 2018)
1452- travis: add build for "configure --disable-verbose"
1453
1454 Closes #3144
1455
1456Kamil Dudka (17 Oct 2018)
1457- tool_cb_hdr: handle failure of rename()
1458
1459 Detected by Coverity.
1460
1461 Closes #3140
1462 Reviewed-by: Jay Satiro
1463
1464Daniel Stenberg (17 Oct 2018)
1465- RELEASE-NOTES: synced
1466
1467- docs/SECURITY-PROCESS: the hackerone IBB program drops curl
1468
1469 ... now there's only BountyGraph.
1470
1471Jay Satiro (16 Oct 2018)
1472- [Matthew Whitehead brought this change]
1473
1474 x509asn1: Fix SAN IP address verification
1475
1476 For IP addresses in the subject alternative name field, the length
1477 of the IP address (and hence the number of bytes to perform a
1478 memcmp on) is incorrectly calculated to be zero. The code previously
1479 subtracted q from name.end. where in a successful case q = name.end
1480 and therefore addrlen equalled 0. The change modifies the code to
1481 subtract name.beg from name.end to calculate the length correctly.
1482
1483 The issue only affects libcurl with GSKit SSL, not other SSL backends.
1484 The issue is not a security issue as IP verification would always fail.
1485
1486 Fixes #3102
1487 Closes #3141
1488
1489Daniel Gustafsson (15 Oct 2018)
1490- INSTALL: mention mesalink in TLS section
1491
1492 Commit 57348eb97d1b8fc3742e02c6587d2d02ff592da5 added support for the
1493 MesaLink vtls backend, but missed updating the TLS section containing
1494 supported backends in the docs.
1495
1496 Closes #3134
1497 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1498
1499Marcel Raad (14 Oct 2018)
1500- nonblock: fix unused parameter warning
1501
1502 If USE_BLOCKING_SOCKETS is defined, curlx_nonblock's arguments are not
1503 used.
1504
1505Michael Kaufmann (13 Oct 2018)
1506- Curl_follow: Always free the passed new URL
1507
1508 Closes #3124
1509
1510Viktor Szakats (12 Oct 2018)
1511- replace rawgit links [ci skip]
1512
1513 Ref: https://rawgit.com/ "RawGit has reached the end of its useful life"
1514 Ref: https://news.ycombinator.com/item?id=18202481
1515 Closes https://github.com/curl/curl/pull/3131
1516
1517Daniel Stenberg (12 Oct 2018)
1518- docs/BUG-BOUNTY.md: for vulns published since Aug 1st 2018
1519
1520 [ci skip]
1521
1522- travis: make distcheck scan for BOM markers
1523
1524 and remove BOM from projects/wolfssl_override.props
1525
1526 Closes #3126
1527
1528Marcel Raad (11 Oct 2018)
1529- CMake: remove BOM
1530
1531 Accidentally aded in commit 1bb86057ff07083deeb0b00f8ad35879ec4d03ea.
1532
1533 Reported-by: Viktor Szakats
1534 Ref: https://github.com/curl/curl/pull/3120#issuecomment-428673136
1535
1536Daniel Gustafsson (10 Oct 2018)
1537- transfer: fix typo in comment
1538
1539Michael Kaufmann (10 Oct 2018)
1540- docs: add "see also" links for SSL options
1541
1542 - link TLS 1.2 and TLS 1.3 options
1543 - link proxy and non-proxy options
1544
1545 Closes #3121
1546
1547Marcel Raad (10 Oct 2018)
1548- AppVeyor: remove BDIR variable that sneaked in again
1549
1550 Removed in ae762e1abebe3a5fe75658583c85059a0957ef6e, accidentally added
1551 again in 9f3be5672dc4dda30ab43e0152e13d714a84d762.
1552
1553- CMake: disable -Wpedantic-ms-format
1554
1555 As done in the autotools build. This is required for MinGW, which
1556 supports only %I64 for printing 64-bit values, but warns about it.
1557
1558 Closes https://github.com/curl/curl/pull/3120
1559
1560Viktor Szakats (9 Oct 2018)
1561- ldap: show precise LDAP call in error message on Windows
1562
1563 Also add a unique but common text ('bind via') to make it
1564 easy to grep this specific failure regardless of platform.
1565
1566 Ref: https://github.com/curl/curl/pull/878/files#diff-7a636f08047c4edb53a240f540b4ecf6R468
1567 Closes https://github.com/curl/curl/pull/3118
1568 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1569 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
1570
1571Daniel Stenberg (9 Oct 2018)
1572- docs/DEPRECATE: minor reformat to render nicer on web
1573
1574Daniel Gustafsson (9 Oct 2018)
1575- CURLOPT_SSL_VERIFYSTATUS: Fix typo
1576
1577 Changes s/OSCP/OCSP/ and bumps the copyright year due to the change.
1578
1579Marcel Raad (9 Oct 2018)
1580- curl_setup: define NOGDI on Windows
1581
1582 This avoids an ERROR macro clash between <wingdi.h> and <arpa/tftp.h>
1583 on MinGW.
1584
1585 Closes https://github.com/curl/curl/pull/3113
1586
1587- Windows: fixes for MinGW targeting Windows Vista
1588
1589 Classic MinGW has neither InitializeCriticalSectionEx nor
1590 GetTickCount64, independent of the target Windows version.
1591
1592 Closes https://github.com/curl/curl/pull/3113
1593
1594Daniel Stenberg (8 Oct 2018)
1595- TODO: fixed 'API for URL parsing/splitting'
1596
1597Daniel Gustafsson (8 Oct 2018)
1598- KNOWN_BUGS: Fix various typos
1599
1600 Closes #3112
1601 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1602
1603Viktor Szakats (8 Oct 2018)
1604- spelling fixes [ci skip]
1605
1606 as detected by codespell 1.14.0
1607
1608 Closes https://github.com/curl/curl/pull/3114
1609 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
1610
1611Daniel Stenberg (8 Oct 2018)
1612- RELEASE-NOTES: synced
1613
1614- curl_ntlm_wb: check aprintf() return codes
1615
1616 ... when they return NULL we're out of memory and MUST return failure.
1617
1618 closes #3111
1619
1620- docs/BUG-BOUNTY: proposed additional docs
1621
1622 Bug bounty explainer. See https://bountygraph.com/programs/curl
1623
1624 Closes #3067
1625
1626- [Rick Deist brought this change]
1627
1628 hostip: fix check on Curl_shuffle_addr return value
1629
1630 Closes #3110
1631
1632- FILE: fix CURLOPT_NOBODY and CURLOPT_HEADER output
1633
1634 Now FILE transfers send headers to the header callback like HTTP and
1635 other protocols. Also made curl_easy_getinfo(...CURLINFO_PROTOCOL...)
1636 work for FILE in the callbacks.
1637
1638 Makes "curl -i file://.." and "curl -I file://.." work like before
1639 again. Applied the bold header logic to them too.
1640
1641 Regression from c1c2762 (7.61.0)
1642
1643 Reported-by: Shaun Jackman
1644 Fixes #3083
1645 Closes #3101
1646
1647Daniel Gustafsson (7 Oct 2018)
1648- gskit: make sure to terminate version string
1649
1650 In case a very small buffer was passed to the version function, it could
1651 result in the buffer not being NULL-terminated since strncpy() doesn't
1652 guarantee a terminator on an overflowed buffer. Rather than adding code
1653 to terminate (and handle zero-sized buffers), move to using snprintf()
1654 instead like all the other vtls backends.
1655
1656 Closes #3105
1657 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1658 Reviewed-by: Viktor Szakats <commit@vszakats.net>
1659
1660- TODO: add LD_PRELOAD support on macOS
1661
1662 Add DYLD_INSERT_LIBRARIES support to the TODO list. Reported in #2394.
1663
1664- runtests: skip ld_preload tests on macOS
1665
1666 The LD_PRELOAD functionality doesn't exist on macOS, so skip any tests
1667 requiring it.
1668
1669 Fixes #2394
1670 Closes #3106
1671 Reported-by: Github user @jakirkham
1672 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1673
1674Marcel Raad (7 Oct 2018)
1675- AppVeyor: use Debug builds to run tests
1676
1677 This enables more tests.
1678
1679 Closes https://github.com/curl/curl/pull/3104
1680
1681- AppVeyor: add HTTP_ONLY build
1682
1683 Closes https://github.com/curl/curl/pull/3104
1684
1685- AppVeyor: add WinSSL builds
1686
1687 Use the oldest and latest Windows SDKs for them.
1688 Also, remove all but one OpenSSL build.
1689
1690 Closes https://github.com/curl/curl/pull/3104
1691
1692- AppVeyor: add remaining Visual Studio versions
1693
1694 This adds Visual Studio 9 and 10 builds.
1695 There's no 64-bit VC9 compiler on AppVeyor, so use it as the Win32
1696 build. Also, VC9 cannot be used for running the test suite.
1697
1698 Closes https://github.com/curl/curl/pull/3104
1699
1700- AppVeyor: break long line
1701
1702 Closes https://github.com/curl/curl/pull/3104
1703
1704- AppVeyor: remove unused BDIR variable
1705
1706 Closes https://github.com/curl/curl/pull/3104
1707
1708Daniel Stenberg (6 Oct 2018)
1709- test2100: test DoH using IPv4-only
1710
1711 To make it only send one DoH request and avoid the race condition that
1712 could lead to the requests getting sent in reversed order and thus
1713 making it hard to compare in the test case.
1714
1715 Fixes #3107
1716 Closes #3108
1717
1718- tests/FILEFORMAT: mention how to use <fileN> and <stripfileN> too
1719
1720 [ci skip]
1721
1722- RELEASE-NOTES: synced
1723
1724- [Dmitry Kostjuchenko brought this change]
1725
1726 timeval: fix use of weak symbol clock_gettime() on Apple platforms
1727
1728 Closes #3048
1729
1730- doh: keep the IPv4 address in (original) network byte order
1731
1732 Ideally this will fix the reversed order shown in SPARC tests:
1733
1734 resp 8: Expected 127.0.0.1 got 1.0.0.127
1735
1736 Closes #3091
1737
1738Jay Satiro (5 Oct 2018)
1739- INTERNALS.md: wrap lines longer than 79
1740
1741Daniel Gustafsson (5 Oct 2018)
1742- INTERNALS: escape reference to parameter
1743
1744 The parameter reference <string> was causing rendering issues in the
1745 generated HTML page, as <string> isn't a valid HTML tag. Fix by back-
1746 tick escaping it.
1747
1748 Closes #3099
1749 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
1750 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1751
1752- checksrc: handle zero scoped ignore commands
1753
1754 If a !checksrc! disable command specified to ignore zero errors, it was
1755 still added to the ignore block even though nothing was ignored. While
1756 there were no blocks ignored that shouldn't be ignored, the processing
1757 ended with with a warning:
1758
1759 <filename>:<line>:<col>: warning: Unused ignore: LONGLINE (UNUSEDIGNORE)
1760 /* !checksrc! disable LONGLINE 0 */
1761 ^
1762 Fix by instead treating a zero ignore as a a badcommand and throw a
1763 warning for that one.
1764
1765 Closes #3096
1766 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1767
1768- checksrc: enable strict mode and warnings
1769
1770 Enable strict and warnings mode for checksrc to ensure we aren't missing
1771 anything due to bugs in the checking code. This uncovered a few things
1772 which are all fixed in this commit:
1773
1774 * several variables were used uninitialized
1775 * several variables were not defined in the correct scope
1776 * the whitelist filehandle was read even if the file didn't exist
1777 * the enable_warn() call when a disable counter had expired was passing
1778 incorrect variables, but since the checkwarn() call is unlikely to hit
1779 (the counter is only decremented to zero on actual ignores) it didn't
1780 manifest a problem.
1781
1782 Closes #3090
1783 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1784 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
1785
1786Marcel Raad (5 Oct 2018)
1787- CMake: suppress MSVC warning C4127 for libtest
1788
1789 It's issued by older Windows SDKs (prior to version 8.0).
1790
1791Sergei Nikulov (5 Oct 2018)
1792- Merge branch 'dmitrykos-fix_missing_CMake_defines'
1793
1794- [Dmitry Kostjuchenko brought this change]
1795
1796 cmake: test and set missed defines during configuration
1797
1798 Added configuration checks for HAVE_BUILTIN_AVAILABLE and HAVE_CLOCK_GETTIME_MONOTONIC.
1799
1800 Closes #3097
1801
1802Marcel Raad (5 Oct 2018)
1803- AppVeyor: disable test 500
1804
1805 It almost always results in
1806 "starttransfer vs total: 0.000001 0.000000".
1807 I cannot reproduce this locally, so disable it for now.
1808
1809 Closes https://github.com/curl/curl/pull/3100
1810
1811- AppVeyor: set custom install prefix
1812
1813 CMake's default has spaces and in 32-bit mode parentheses, which result
1814 in syntax errors in curl-config.
1815
1816 Closes https://github.com/curl/curl/pull/3100
1817
1818- AppVeyor: Remove non-SSL non-test builds
1819
1820 They don't add much value.
1821
1822 Closes https://github.com/curl/curl/pull/3100
1823
1824- AppVeyor: run test suite
1825
1826 Use the preinstalled MSYS2 bash for that.
1827 Disable test 1139 as the CMake build doesn't generate curl.1.
1828
1829 Ref: https://github.com/curl/curl/issues/3070#issuecomment-425922224
1830 Closes https://github.com/curl/curl/pull/3100
1831
1832- AppVeyor: use in-tree build
1833
1834 Required to run the tests.
1835
1836 Closes https://github.com/curl/curl/pull/3100
1837
1838Daniel Stenberg (4 Oct 2018)
1839- doh: make sure TTL isn't re-inited by second (discarded?) response
1840
1841 Closes #3092
1842
1843- test320: strip out more HTML when comparing
1844
1845 To make the test case work with different gnutls-serv versions better.
1846
1847 Reported-by: Kamil Dudka
1848 Fixes #3093
1849 Closes #3094
1850
1851Marcel Raad (4 Oct 2018)
1852- runtests: use Windows paths for Windows curl
1853
1854 curl generated by CMake's Visual Studio generator has "Windows" in the
1855 version number.
1856
1857Daniel Stenberg (4 Oct 2018)
1858- [Colin Hogben brought this change]
1859
1860 tests/negtelnetserver.py: fix Python2-ism in neg TELNET server
1861
1862 Fix problems caused by differences in treatment of bytes objects between
1863 python2 and python3.
1864
1865 Fixes #2929
1866 Closes #3080
1867
1868Daniel Gustafsson (3 Oct 2018)
1869- memory: ensure to check allocation results
1870
1871 The result of a memory allocation should always be checked, as we may
1872 run under memory pressure where even a small allocation can fail. This
1873 adds checking and error handling to a few cases where the allocation
1874 wasn't checked for success. In the ftp case, the freeing of the path
1875 variable is moved ahead of the allocation since there is little point
1876 in keeping it around across the strdup, and the separation makes for
1877 more readable code. In nwlib, the lock is aslo freed in the error path.
1878
1879 Also bumps the copyright years on affected files.
1880
1881 Closes #3084
1882 Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
1883 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1884
1885- comment: Fix multiple typos in function parameters
1886
1887 Ensure that the parameters in the comment match the actual names in the
1888 prototype.
1889
1890 Closes #3079
1891 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1892
1893- CURLOPT_SSLVERSION.3: fix typos and consistent spelling
1894
1895 Use TLS vX.Y throughout the document, instead of TLS X.Y, as that was
1896 already done in all but a few cases. Also fix a few typos.
1897
1898 Closes #3076
1899 Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
1900 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1901
1902- SECURITY-PROCESS: make links into hyperlinks
1903
1904 Use proper Markdown hyperlink format for the Bountygraph links in order
1905 for the generated website page to be more user friendly. Also link to
1906 the sponsors to give them a little extra credit.
1907
1908 Closes #3082
1909 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
1910
1911Jay Satiro (3 Oct 2018)
1912- CURLOPT_HEADER.3: fix typo
1913
1914- nss: fix nssckbi module loading on Windows
1915
1916 - Use .DLL extension instead of .so to load modules on Windows.
1917
1918 Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
1919 Reported-by: Maxime Legros
1920
1921 Ref: https://github.com/curl/curl/pull/3016/#issuecomment-423069442
1922
1923 Closes https://github.com/curl/curl/pull/3086
1924
1925- data-binary.d: clarify default content-type is x-www-form-urlencoded
1926
1927 - Advise user that --data-binary sends a default content type of
1928 x-www-form-urlencoded, and to have the data treated as arbitrary
1929 binary data by the server set the content-type header to octet-stream.
1930
1931 Ref: https://github.com/curl/curl/pull/2852#issuecomment-426465094
1932
1933 Closes https://github.com/curl/curl/pull/3085
1934
1935Marcel Raad (2 Oct 2018)
1936- test1299: use single quotes around asterisk
1937
1938 Ref: https://github.com/curl/curl/issues/1751#issuecomment-321522580
1939
1940Daniel Stenberg (2 Oct 2018)
1941- docs/CIPHERS: mention the colon separation for OpenSSL
1942
1943 Bug: #3077
1944
1945- runtests: ignore disabled even when ranges are given
1946
1947 runtests.pl support running a range of tests, like "44 to 127". Starting
1948 now, the code makes sure that even such given ranges will ignore tests
1949 that are marked as disabled.
1950
1951 Disabled tests can still be run by explictly specifying that test
1952 number.
1953
1954 Closes #3075
1955
1956- urlapi: starting with a drive letter on win32 is not an abs url
1957
1958 ... and libcurl doesn't support any single-letter URL schemes (if there
1959 even exist any) so it should be fairly risk-free.
1960
1961 Reported-by: Marcel Raad
1962
1963 Fixes #3070
1964 Closes #3071
1965
1966Marcel Raad (2 Oct 2018)
1967- doh: fix curl_easy_setopt argument type
1968
1969 CURLOPT_POSTFIELDSIZE is long. Fixes a compiler warning on 64-bit
1970 MinGW.
1971
1972Daniel Stenberg (2 Oct 2018)
1973- RELEASE-NOTES: synced
1974
1975Jay Satiro (1 Oct 2018)
1976- [Ruslan Baratov brought this change]
1977
1978 CMake: Improve config installation
1979
1980 Use 'GNUInstallDirs' standard module to set destinations of installed
1981 files.
1982
1983 Use uppercase "CURL" names instead of lowercase "curl" to match standard
1984 'FindCURL.cmake' CMake module:
1985 * https://cmake.org/cmake/help/latest/module/FindCURL.html
1986
1987 Meaning:
1988 * Install 'CURLConfig.cmake' instead of 'curl-config.cmake'
1989 * User should call 'find_package(CURL)' instead of 'find_package(curl)'
1990
1991 Use 'configure_package_config_file' function to generate
1992 'CURLConfig.cmake' file. This will make 'curl-config.cmake.in' template
1993 file smaller and handle components better. E.g. current configuration
1994 report no error if user specified unknown components (note: new
1995 configuration expects no components, report error if user will try to
1996 specify any).
1997
1998 Closes https://github.com/curl/curl/pull/2849
1999
2000Daniel Stenberg (1 Oct 2018)
2001- test1650: make it depend on http/2
2002
2003 Follow-up to 570008c99da0ccbb as it gets link errors.
2004
2005 Reported-by: Michael Kaufmann
2006 Closes #3068
2007
2008- [Nate Prewitt brought this change]
2009
2010 MANUAL: minor grammar fix
2011
2012 Noticed a typo reading through the docs.
2013
2014 Closes #3069
2015
2016- doh: only build if h2 enabled
2017
2018 The DoH spec says "HTTP/2 [RFC7540] is the minimum RECOMMENDED version
2019 of HTTP for use with DoH".
2020
2021 Reported-by: Marcel Raad
2022 Closes #3066
2023
2024- test2100: require http2 to run
2025
2026 Reported-by: Marcel Raad
2027 Fixes #3064
2028 Closes #3065
2029
2030- multi: fix memory leak in content encoding related error path
2031
2032 ... a missing multi_done() call.
2033
2034 Credit to OSS-Fuzz
2035 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10728
2036 Closes #3063
2037
2038- travis: bump the Secure Transport build to use xcode 10
2039
2040 Due to an issue with travis
2041 (https://github.com/travis-ci/travis-ci/issues/9956) we've been using
2042 Xcode 9.2 for darwinssl builds for a while. Now xcode 10 is offered as
2043 an alternative and as it builds curl+darwinssl fine that seems like a
2044 better choice.
2045
2046 Closes #3062
2047
2048- [Rich Turner brought this change]
2049
2050 curl: enabled Windows VT Support and UTF-8 output
2051
2052 Enabled Console VT support (if running OS supports VT) in tool_main.c.
2053
2054 Fixes #3008
2055 Closes #3011
2056
2057- multi: fix location URL memleak in error path
2058
2059 Follow-up to #3044 - fix a leak OSS-Fuzz detected
2060 Closes #3057
2061
2062Sergei Nikulov (28 Sep 2018)
2063- cmake: fixed path used in generation of docs/tests during curl build through add_subdicectory(...)
2064
2065- [Brad King brought this change]
2066
2067 cmake: Backport to work with CMake 3.0 again
2068
2069 Changes in commit 7867aaa9a0 (cmake: link curl to the OpenSSL targets
2070 instead of lib absolute paths, 2018-07-17) and commit f826b4ce98 (cmake:
2071 bumped minimum version to 3.4, 2018-07-19) required CMake 3.4 to fix
2072 issue #2746. This broke support for users on older versions of CMake
2073 even if they just want to build curl and do not care whether transitive
2074 dependencies work.
2075
2076 Backport the logic to work with CMake 3.0 again by implementing the
2077 fix only when the version of CMake is at least 3.4.
2078
2079Marcel Raad (27 Sep 2018)
2080- curl_threads: fix classic MinGW compile break
2081
2082 Classic MinGW still has _beginthreadex's return type as unsigned long
2083 instead of uintptr_t [0]. uintptr_t is not even defined because of [1].
2084
2085 [0] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l167
2086 [1] https://sourceforge.net/p/mingw/mingw-org-wsl/ci/wsl-5.1-release/tree/mingwrt/include/process.h#l90
2087
2088 Bug: https://github.com/curl/curl/issues/2924#issuecomment-424334807
2089 Closes https://github.com/curl/curl/pull/3051
2090
2091Daniel Stenberg (26 Sep 2018)
2092- configure: s/AC_RUN_IFELSE/CURL_RUN_IFELSE
2093
2094 fix a few leftovers
2095
2096 Fixes #3006
2097 Closes #3049
2098
2099- [Doron Behar brought this change]
2100
2101 example/htmltidy: fix include paths of tidy libraries
2102
2103 Closes #3050
2104
2105- RELEASE-NOTES: synced
2106
2107- Curl_http2_done: fix memleak in error path
2108
2109 Free 'header_recvbuf' unconditionally even if 'h2' isn't (yet) set, for
2110 early failures.
2111
2112 Detected by OSS-Fuzz
2113
2114 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10669
2115 Closes #3046
2116
2117- http: fix memleak in rewind error path
2118
2119 If the rewind would fail, a strdup() would not get freed.
2120
2121 Detected by OSS-Fuzz
2122
2123 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10665
2124 Closes #3044
2125
2126Viktor Szakats (24 Sep 2018)
2127- test320: fix regression in [ci skip]
2128
2129 The value in question is coming directly from `gnutls-serv`, so it cannot
2130 be modified freely.
2131
2132 Reported-by: Marcel Raad
2133 Ref: https://github.com/curl/curl/commit/6ae6b2a533e8630afbb21f570305bd4ceece6348#commitcomment-30621004
2134
2135Daniel Stenberg (24 Sep 2018)
2136- Curl_retry_request: fix memory leak
2137
2138 Detected by OSS-Fuzz
2139
2140 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10648
2141 Closes #3042
2142
2143- openssl: load built-in engines too
2144
2145 Regression since 38203f1
2146
2147 Reported-by: Jean Fabrice
2148 Fixes #3023
2149 Closes #3040
2150
2151- [Christian Heimes brought this change]
2152
2153 OpenSSL: enable TLS 1.3 post-handshake auth
2154
2155 OpenSSL 1.1.1 requires clients to opt-in for post-handshake
2156 authentication.
2157
2158 Fixes: https://github.com/curl/curl/issues/3026
2159 Signed-off-by: Christian Heimes <christian@python.org>
2160
2161 Closes https://github.com/curl/curl/pull/3027
2162
2163- [Even Rouault brought this change]
2164
2165 Curl_dedotdotify(): always nul terminate returned string.
2166
2167 This fixes potential out-of-buffer access on "file:./" URL
2168
2169 $ valgrind curl "file:./"
2170 ==24516== Memcheck, a memory error detector
2171 ==24516== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
2172 ==24516== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
2173 ==24516== Command: /home/even/install-curl-git/bin/curl file:./
2174 ==24516==
2175 ==24516== Conditional jump or move depends on uninitialised value(s)
2176 ==24516== at 0x4C31F9C: strcmp (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
2177 ==24516== by 0x4EBB315: seturl (urlapi.c:801)
2178 ==24516== by 0x4EBB568: parseurl (urlapi.c:861)
2179 ==24516== by 0x4EBC509: curl_url_set (urlapi.c:1199)
2180 ==24516== by 0x4E644C6: parseurlandfillconn (url.c:2044)
2181 ==24516== by 0x4E67AEF: create_conn (url.c:3613)
2182 ==24516== by 0x4E68A4F: Curl_connect (url.c:4119)
2183 ==24516== by 0x4E7F0A4: multi_runsingle (multi.c:1440)
2184 ==24516== by 0x4E808E5: curl_multi_perform (multi.c:2173)
2185 ==24516== by 0x4E7558C: easy_transfer (easy.c:686)
2186 ==24516== by 0x4E75801: easy_perform (easy.c:779)
2187 ==24516== by 0x4E75868: curl_easy_perform (easy.c:798)
2188
2189 Was originally spotted by
2190 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10637
2191 Credit to OSS-Fuzz
2192
2193 Closes #3039
2194
2195Viktor Szakats (23 Sep 2018)
2196- update URLs in tests
2197
2198 - and one in docs/MANUAL as well
2199
2200 Closes https://github.com/curl/curl/pull/3038
2201
2202- whitespace fixes
2203
2204 - replace tabs with spaces where possible
2205 - remove line ending spaces
2206 - remove double/triple newlines at EOF
2207 - fix a non-UTF-8 character
2208 - cleanup a few indentations/line continuations
2209 in manual examples
2210
2211 Closes https://github.com/curl/curl/pull/3037
2212
2213Daniel Stenberg (23 Sep 2018)
2214- http: add missing return code check
2215
2216 Detected by Coverity. CID 1439610.
2217
2218 Follow-up from 46e164069d1a523
2219
2220 Closes #3034
2221
2222- ftp: don't access pointer before NULL check
2223
2224 Detected by Coverity. CID 1439611.
2225
2226 Follow-up from 46e164069d1a523
2227
2228- unit1650: fix out of boundary access
2229
2230 Fixes #2987
2231 Closes #3035
2232
2233Viktor Szakats (23 Sep 2018)
2234- docs/examples: URL updates
2235
2236 - also update two URLs outside of docs/examples
2237 - fix spelling of filename persistant.c
2238 - fix three long lines that started failing checksrc.pl
2239
2240 Closes https://github.com/curl/curl/pull/3036
2241
2242- examples/Makefile.m32: sync with core [ci skip]
2243
2244 also:
2245 - fix two warnings in synctime.c (one of them Windows-specific)
2246 - upgrade URLs in synctime.c and remove a broken one
2247
2248 Closes https://github.com/curl/curl/pull/3033
2249
2250Daniel Stenberg (22 Sep 2018)
2251- examples/parseurl.c: show off the URL API a bit
2252
2253 Closes #3030
2254
2255- SECURITY-PROCESS: mention the bountygraph program [ci skip]
2256
2257 Closes #3032
2258
2259- url: use the URL API internally as well
2260
2261 ... to make it a truly unified URL parser.
2262
2263 Closes #3017
2264
2265Viktor Szakats (22 Sep 2018)
2266- URL and mailmap updates, remove an obsolete directory [ci skip]
2267
2268 Closes https://github.com/curl/curl/pull/3031
2269
2270Daniel Stenberg (22 Sep 2018)
2271- RELEASE-NOTES: synced
2272
2273- configure: force-use -lpthreads on HPUX
2274
2275 When trying to detect pthreads use on HPUX the checks will succeed
2276 without the correct -l option but then end up failing at run-time.
2277
2278 Reported-by: Eason-Yu on github
2279 Fixes #2697
2280 Closes #3025
2281
2282- [Erik Minekus brought this change]
2283
2284 Curl_saferealloc: Fixed typo in docblock
2285
2286 Closes #3029
2287
2288- urlapi: fix support for address scope in IPv6 numerical addresses
2289
2290 Closes #3024
2291
2292- [Loganaden Velvindron brought this change]
2293
2294 GnutTLS: TLS 1.3 support
2295
2296 Closes #2971
2297
2298- TODO: c-ares and CURLOPT_OPENSOCKETFUNCTION
2299
2300 Removed DoH.
2301
2302 Closes #2734
2303
2304Jay Satiro (20 Sep 2018)
2305- vtls: fix ssl version "or later" behavior change for many backends
2306
2307 - Treat CURL_SSLVERSION_MAX_NONE the same as
2308 CURL_SSLVERSION_MAX_DEFAULT. Prior to this change NONE would mean use
2309 the minimum version also as the maximum.
2310
2311 This is a follow-up to 6015cef which changed the behavior of setting
2312 the SSL version so that the requested version would only be the minimum
2313 and not the maximum. It appears it was (mostly) implemented in OpenSSL
2314 but not other backends. In other words CURL_SSLVERSION_TLSv1_0 used to
2315 mean use just TLS v1.0 and now it means use TLS v1.0 *or later*.
2316
2317 - Fix CURL_SSLVERSION_MAX_DEFAULT for OpenSSL.
2318
2319 Prior to this change CURL_SSLVERSION_MAX_DEFAULT with OpenSSL was
2320 erroneously treated as always TLS 1.3, and would cause an error if
2321 OpenSSL was built without TLS 1.3 support.
2322
2323 Co-authored-by: Daniel Gustafsson
2324
2325 Fixes https://github.com/curl/curl/issues/2969
2326 Closes https://github.com/curl/curl/pull/3012
2327
2328Daniel Stenberg (20 Sep 2018)
2329- certs: generate tests certs with sha256 digest algorithm
2330
2331 As OpenSSL 1.1.1 starts to complain and fail on sha1 CAs:
2332
2333 "SSL certificate problem: CA signature digest algorithm too weak"
2334
2335 Closes #3014
2336
2337- urlapi: document the error codes, remove two unused ones
2338
2339 Assisted-by: Daniel Gustafsson
2340 Closes #3019
2341
2342- urlapi: add CURLU_GUESS_SCHEME and fix hostname acceptance
2343
2344 In order for this API to fully work for libcurl itself, it now offers a
2345 CURLU_GUESS_SCHEME flag that makes it "guess" scheme based on the host
2346 name prefix just like libcurl always did. If there's no known prefix, it
2347 will guess "http://".
2348
2349 Separately, it relaxes the check of the host name so that IDN host names
2350 can be passed in as well.
2351
2352 Both these changes are necessary for libcurl itself to use this API.
2353
2354 Assisted-by: Daniel Gustafsson
2355 Closes #3018
2356
2357Kamil Dudka (19 Sep 2018)
2358- nss: try to connect even if libnssckbi.so fails to load
2359
2360 One can still use CA certificates stored in NSS database.
2361
2362 Reported-by: Maxime Legros
2363 Bug: https://curl.haxx.se/mail/lib-2018-09/0077.html
2364
2365 Closes #3016
2366
2367Daniel Gustafsson (19 Sep 2018)
2368- urlapi: don't set value which is never read
2369
2370 In the CURLUPART_URL case, there is no codepath which invokes url
2371 decoding so remove the assignment of the urldecode variable. This
2372 fixes the deadstore bug-report from clang static analysis.
2373
2374 Closes #3015
2375 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2376
2377- todo: Update reference to already done item
2378
2379 TODO item 1.1 was implemented in commit 946ce5b61f, update reference
2380 to it with instead referencing the implemented option.
2381
2382 Closes #3013
2383 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2384
2385Daniel Stenberg (18 Sep 2018)
2386- RELEASE-NOTES: synced
2387
2388- [slodki brought this change]
2389
2390 cmake: don't require OpenSSL if USE_OPENSSL=OFF
2391
2392 User must have OpenSSL installed even if not used by libcurl at all
2393 since 7.61.1 release. Broken at
2394 7867aaa9a01decf93711428462335be8cef70212
2395
2396 Reviewed-by: Sergei Nikulov
2397 Closes #3001
2398
2399- curl_multi_wait: call getsock before figuring out timeout
2400
2401 .... since getsock may update the expiry timer.
2402
2403 Fixes #2996
2404 Closes #3000
2405
2406- examples/http2-pushinmemory: receive HTTP/2 pushed files in memory
2407
2408 Closes #3004
2409
2410Daniel Gustafsson (18 Sep 2018)
2411- darwinssl: Fix realloc memleak
2412
2413 The reallocation was using the input pointer for the return value, which
2414 leads to a memory leak on reallication failure. Fix by instead use the
2415 safe internal API call Curl_saferealloc().
2416
2417 Closes #3005
2418 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2419 Reviewed-by: Nick Zitzmann <nickzman@gmail.com>
2420
2421- [Kruzya brought this change]
2422
2423 examples: Fix memory leaks from realloc errors
2424
2425 Make sure to not overwrite the reallocated pointer in realloc() calls
2426 to avoid a memleak on memory errors.
2427
2428- memory: add missing curl_printf header
2429
2430 ftp_send_command() was using vsnprintf() without including the libcurl
2431 *rintf() replacement header. Fix by including curl_printf.h and also
2432 add curl_memory.h while at it since memdebug.h depends on it.
2433
2434 Closes #2999
2435 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2436
2437Daniel Stenberg (16 Sep 2018)
2438- [Si brought this change]
2439
2440 curl: update --tlsv* descriptions in --help output
2441
2442 Closes #2994
2443
2444- http: made Curl_add_buffer functions take a pointer-pointer
2445
2446 ... so that they can clear the original pointer on failure, which makes
2447 the error-paths and their cleanups easier.
2448
2449 Closes #2992
2450
2451- http2: fix memory leaks on error-path
2452
2453- [Rikard Falkeborn brought this change]
2454
2455 libtest: Add chkdecimalpoint to .gitignore
2456
2457 Closes #2998
2458
2459Viktor Szakats (14 Sep 2018)
2460- secure Openwall URLs
2461
2462Daniel Stenberg (14 Sep 2018)
2463- openssl: show "proper" version number for libressl builds
2464
2465 Closes #2989
2466
2467- [Rainer Jung brought this change]
2468
2469 openssl: assume engine support in 0.9.8 or later
2470
2471 Fixes #2983
2472 Closes #2988
2473
2474Daniel Gustafsson (13 Sep 2018)
2475- sendf: use failf() rather than Curl_failf()
2476
2477 The failf() macro is the name used for invoking Curl_failf(). While
2478 there isn't a way to turn off failf like there is for infof, but it's
2479 still a good idea to use the macro.
2480
2481 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2482
2483- sendf: Fix whitespace in infof/failf concatenation
2484
2485 Strings broken on multiple rows in the .c file need to have appropriate
2486 whitespace padding on either side of the concatenation point to render
2487 a correct amalgamated string. Fix by adding a space at the occurrences
2488 found.
2489
2490 Closes #2986
2491 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2492
2493- krb5: fix memory leak in krb_auth
2494
2495 The FTP command allocated by aprintf() must be freed after usage.
2496
2497 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2498
2499- ftp: include command in Curl_ftpsend sendbuffer
2500
2501 Commit 8238ba9c5f10414a88f502bf3f5d5a42d632984c inadvertently removed
2502 the actual command to be sent from the send buffer in a refactoring.
2503 Add back copying the command into the buffer. Also add more guards
2504 against malformed input while at it.
2505
2506 Closes #2985
2507 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2508
2509- ntlm_wb: Fix memory leaks in ntlm_wb_response
2510
2511 When erroring out on a request being too large, the existing buffer was
2512 leaked. Fix by explicitly freeing on the way out.
2513
2514 Closes #2966
2515 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2516
2517Daniel Stenberg (13 Sep 2018)
2518- [Yiming Jing brought this change]
2519
2520 travis: build the MesaLink vtls backend with MesaLink 0.7.1
2521
2522- [Yiming Jing brought this change]
2523
2524 runtests.pl: run tests against the MesaLink vtls backend
2525
2526- [Yiming Jing brought this change]
2527
2528 vtls: add a MesaLink vtls backend
2529
2530 Closes #2984
2531
2532- [Yiming Jing brought this change]
2533
2534 configure.ac: add a MesaLink vtls backend
2535
2536- [Dave Reisner brought this change]
2537
2538 curl_url_set.3: properly escape \n in example code
2539
2540 This yields
2541
2542 "the scheme is %s\n"
2543
2544 instead of
2545
2546 "the scheme is %s0
2547
2548 Closes #2970
2549
2550- [Dave Reisner brought this change]
2551
2552 curl_url_set.3: fix typo in reference to CURLU_APPENDQUERY
2553
2554- urlglob: improve error message
2555
2556 to help user understand what the problem is
2557
2558 Reported-by: Daniel Shahaf
2559
2560 Fixes #2763
2561 Closes #2977
2562
2563- [Yiming Jing brought this change]
2564
2565 tests/certs: rebuild certs with 2048-bit RSA keys
2566
2567 The previous test certificates contained RSA keys of only 1024 bits.
2568 However, RSA claims that 1024-bit RSA keys are likely to become
2569 crackable some time before 2010. The NIST recommends at least 2048-bit
2570 keys for RSA for now.
2571
2572 Better use full 2048 also for testing.
2573
2574 Closes #2973
2575
2576Daniel Gustafsson (12 Sep 2018)
2577- TODO: fix typo in item
2578
2579 Closes #2968
2580 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2581
2582Marcel Raad (12 Sep 2018)
2583- anyauthput: fix compiler warning on 64-bit Windows
2584
2585 On Windows, the read function from <io.h> is used, which has its byte
2586 count parameter as unsigned int instead of size_t.
2587
2588 Closes https://github.com/curl/curl/pull/2972
2589
2590Viktor Szakats (12 Sep 2018)
2591- lib: fix gcc8 warning on Windows
2592
2593 Closes https://github.com/curl/curl/pull/2979
2594
2595Jay Satiro (12 Sep 2018)
2596- openssl: fix gcc8 warning
2597
2598 - Use memcpy instead of strncpy to copy a string without termination,
2599 since gcc8 warns about using strncpy to copy as many bytes from a
2600 string as its length.
2601
2602 Suggested-by: Viktor Szakats
2603
2604 Closes https://github.com/curl/curl/issues/2980
2605
2606Daniel Stenberg (10 Sep 2018)
2607- libcurl-url.3: overview man page for the URL API
2608
2609 Closes #2967
2610
2611- example/asiohiper: insert warning comment about its status
2612
2613 This example is simply not working correctly but there's nobody around
2614 with the skills and energy to fix it.
2615
2616 Closes #2407
2617
2618Kamil Dudka (10 Sep 2018)
2619- docs/cmdline-opts: update the documentation of --tlsv1.0
2620
2621 ... to reflect the changes in 6015cefb1b2cfde4b4850121c42405275e5e77d9
2622
2623 Closes #2955
2624
2625- docs/examples: do not wait when no transfers are running
2626
2627 Closes #2948
2628
2629Daniel Stenberg (10 Sep 2018)
2630- [Daniel Gustafsson brought this change]
2631
2632 cookies: Move failure case label to end of function
2633
2634 Rather than jumping backwards to where failure cleanup happens
2635 to be performed, move the failure case to end of the function
2636 where it is expected per existing coding convention.
2637
2638 Closes #2965
2639
2640- [Daniel Gustafsson brought this change]
2641
2642 misc: fix typos in comments
2643
2644 Closes #2963
2645
2646- [Daniel Gustafsson brought this change]
2647
2648 cookies: fix leak when writing cookies to file
2649
2650 If the formatting fails, we error out on a fatal error and
2651 clean up on the way out. The array was however freed within
2652 the wrong scope and was thus never freed in case the cookies
2653 were written to a file instead of STDOUT.
2654
2655 Closes #2957
2656
2657- [Daniel Gustafsson brought this change]
2658
2659 cookies: Remove redundant expired check
2660
2661 Expired cookies have already been purged at a later expiration time
2662 before this check, so remove the redundant check.
2663
2664 closes #2962
2665
2666- ntlm_wb: bail out if the response gets overly large
2667
2668 Exit the realloc() loop if the response turns out ridiculously large to
2669 avoid worse problems.
2670
2671 Reported-by: Harry Sintonen
2672 Closes #2959
2673
2674- [Daniel Gustafsson brought this change]
2675
2676 url.c: fix comment typo and indentation
2677
2678 Closes #2960
2679
2680- urlapi: avoid derefencing a possible NULL pointer
2681
2682 Coverity CID 1439134
2683
2684- RELEASE-NOTES: synced
2685
2686Marcel Raad (8 Sep 2018)
2687- test324: fix after 3f3b26d6feb0667714902e836af608094235fca2
2688
2689 The expected error code is now 60. 51 is dead.
2690
2691Daniel Stenberg (8 Sep 2018)
2692- curl_url_set.3: correct description
2693
2694- curl_url-docs: fix AVAILABILITY as Added in curl 7.62.0
2695
2696- URL-API
2697
2698 See header file and man pages for API. All documented API details work
2699 and are tested in the 1560 test case.
2700
2701 Closes #2842
2702
2703- curl_easy_upkeep: removed 'conn' from the name
2704
2705 ... including the associated option.
2706
2707 Fixes #2951
2708 Closes #2952
2709
2710- [Max Dymond brought this change]
2711
2712 upkeep: add a connection upkeep API: curl_easy_conn_upkeep()
2713
2714 Add functionality so that protocols can do custom keepalive on their
2715 connections, when an external API function is called.
2716
2717 Add docs for the new options in 7.62.0
2718
2719 Closes #1641
2720
2721- [Philipp Waehnert brought this change]
2722
2723 configure: add option to disable automatic OpenSSL config loading
2724
2725 Sometimes it may be considered a security risk to load an external
2726 OpenSSL configuration automatically inside curl_global_init(). The
2727 configuration option --disable-ssl-auto-load-config disables this
2728 automatism. The Windows build scripts winbuild/Makefile.vs provide a
2729 corresponding option ENABLE_SSL_AUTO_LOAD_CONFIG accepting a boolean
2730 value.
2731
2732 Setting neither of these options corresponds to the previous behavior
2733 loading the external OpenSSL configuration automatically.
2734
2735 Fixes #2724
2736 Closes #2791
2737
2738- doh: minor edits to please Coverity
2739
2740 The gcc typecheck macros and coverity combined made it warn on the 2nd
2741 argument for ERROR_CHECK_SETOPT(). Here's minor rearrange to please it.
2742
2743 Coverity CID 1439115 and CID 1439114.
2744
2745- schannel: avoid switch-cases that go to default anyway
2746
2747 SEC_E_APPLICATION_PROTOCOL_MISMATCH isn't defined in some versions of
2748 mingw and would require an ifdef otherwise.
2749
2750 Reported-by: Thomas Glanzmann
2751 Approved-by: Marc Hörsken
2752 Bug: https://curl.haxx.se/mail/lib-2018-09/0020.html
2753 Closes #2950
2754
2755- [Nicklas Avén brought this change]
2756
2757 imap: change from "FETCH" to "UID FETCH"
2758
2759 ... and add "MAILINDEX".
2760
2761 As described in #2789, this is a suggested solution. Changing UID=xx to
2762 actually get mail with UID xx and add "MAILINDEX" to get a mail with a
2763 special index in the mail box (old behavior). So MAILINDEX=1 gives the
2764 first non deleted mail in the mail box.
2765
2766 Fixes #2789
2767 Closes #2815
2768
2769- CURLOPT_UPLOAD_BUFFERSIZE: set upload buffer size
2770
2771 This is step 3 of #2888.
2772
2773 Fixes #2888
2774 Closes #2896
2775
2776- travis: add the DOH tests to the torture testing
2777
2778- DOH: add test case 1650 and 2100
2779
2780- curl: --doh-url added
2781
2782- setopt: add CURLOPT_DOH_URL
2783
2784 Closes #2668
2785
2786- [Han Han brought this change]
2787
2788 ssl: deprecate CURLE_SSL_CACERT in favour of a unified error code
2789
2790 Long live CURLE_PEER_FAILED_VERIFICATION
2791
2792- [Han Han brought this change]
2793
2794 x509asn1: return CURLE_PEER_FAILED_VERIFICATION on failure to parse cert
2795
2796 CURLE_PEER_FAILED_VERIFICATION makes more sense because Curl_parseX509
2797 does not allocate memory internally as its first argument is a pointer
2798 to the certificate structure. The same error code is also returned by
2799 Curl_verifyhost when its call to Curl_parseX509 fails so the change
2800 makes error handling more consistent.
2801
2802- [Han Han brought this change]
2803
2804 openssl: return CURLE_PEER_FAILED_VERIFICATION on failure to parse issuer
2805
2806 Failure to extract the issuer name from the server certificate should
2807 return a more specific error code like on other TLS backends.
2808
2809- [Han Han brought this change]
2810
2811 schannel: unified error code handling
2812
2813 Closes #2901
2814
2815- [Han Han brought this change]
2816
2817 darwinssl: more specific and unified error codes
2818
2819 Closes #2901
2820
2821- CURLOPT_DNS_USE_GLOBAL_CACHE: deprecated
2822
2823 Disable the CURLOPT_DNS_USE_GLOBAL_CACHE option and mark it for
2824 deprecation and complete removal in six months.
2825
2826 Bug: https://curl.haxx.se/mail/lib-2018-09/0010.html
2827 Closes #2942
2828
2829- url: default to CURL_HTTP_VERSION_2TLS if built h2-enabled
2830
2831 Closes #2709
2832
2833- multiplex: enable by default
2834
2835 Starting 7.62.0, multiplexing is enabled by default in multi handles.
2836
2837- [Jim Fuller brought this change]
2838
2839 tests: add unit tests for url.c
2840
2841 Approved-by: Daniel Gustafsson
2842 Closes #2937
2843
2844- test1452: mark as flaky
2845
2846 makes it not run in the CI builds
2847
2848 Closes #2941
2849
2850- pipelining: deprecated
2851
2852 Transparently. The related curl_multi_setopt() options all still returns
2853 OK when pipelining is selected.
2854
2855 To re-enable the support, the single line change in lib/multi.c needs to
2856 be reverted.
2857
2858 See docs/DEPRECATE.md
2859
2860 Closes #2705
2861
2862- RELEASE-NOTES: start working on 7.62.0
2863
Elliott Hughesb1ef70f2018-10-30 11:28:38 -07002864Version 7.61.1 (4 Sep 2018)
2865
2866Daniel Stenberg (4 Sep 2018)
2867- THANKS: 7.61.1 status
2868
2869- RELEASE-NOTES: 7.61.1
2870
2871- Curl_getoff_all_pipelines: ignore unused return values
2872
2873 Since scan-build would warn on the dead "Dead store/Dead increment"
2874
2875Viktor Szakats (4 Sep 2018)
2876- sftp: fix indentation
2877
2878Daniel Stenberg (4 Sep 2018)
2879- [Przemysław Tomaszewski brought this change]
2880
2881 sftp: don't send post-qoute sequence when retrying a connection
2882
2883 Fixes #2939
2884 Closes #2940
2885
2886Kamil Dudka (3 Sep 2018)
2887- url, vtls: make CURLOPT{,_PROXY}_TLS13_CIPHERS work
2888
2889 This is a follow-up to PR #2607 and PR #2926.
2890
2891 Closes #2936
2892
2893Daniel Stenberg (3 Sep 2018)
2894- [Jay Satiro brought this change]
2895
2896 tool_operate: Add http code 408 to transient list for --retry
2897
2898 - Treat 408 request timeout as transient so that curl will retry the
2899 request if --retry was used.
2900
2901 Closes #2925
2902
2903- [Jay Satiro brought this change]
2904
2905 openssl: Fix setting TLS 1.3 cipher suites
2906
2907 The flag indicating TLS 1.3 cipher support in the OpenSSL backend was
2908 missing.
2909
2910 Bug: https://github.com/curl/curl/pull/2607#issuecomment-417283187
2911 Reported-by: Kamil Dudka
2912
2913 Closes #2926
2914
2915- Curl_ntlm_core_mk_nt_hash: return error on too long password
2916
2917 ... since it would cause an integer overflow if longer than (max size_t
2918 / 2).
2919
2920 This is CVE-2018-14618
2921
2922 Bug: https://curl.haxx.se/docs/CVE-2018-14618.html
2923 Closes #2756
2924 Reported-by: Zhaoyang Wu
2925
2926- [Rikard Falkeborn brought this change]
2927
2928 http2: Use correct format identifier for stream_id
2929
2930 Closes #2928
2931
2932Marcel Raad (2 Sep 2018)
2933- test1148: fix precheck output
2934
2935 "precheck command error" is not very helpful.
2936
2937Daniel Stenberg (1 Sep 2018)
2938- all: s/int/size_t cleanup
2939
2940 Assisted-by: Rikard Falkeborn
2941
2942 Closes #2922
2943
2944- ssh-libssh: use FALLTHROUGH to silence gcc8
2945
2946Jay Satiro (31 Aug 2018)
2947- tool_operate: Fix setting proxy TLS 1.3 ciphers
2948
2949Daniel Stenberg (31 Aug 2018)
2950- [Daniel Gustafsson brought this change]
2951
2952 cookies: support creation-time attribute for cookies
2953
2954 According to RFC6265 section 5.4, cookies with equal path lengths
2955 SHOULD be sorted by creation-time (earlier first). This adds a
2956 creation-time record to the cookie struct in order to make cookie
2957 sorting more deterministic. The creation-time is defined as the
2958 order of the cookies in the jar, the first cookie read fro the
2959 jar being the oldest. The creation-time is thus not serialized
2960 into the jar. Also remove the strcmp() matching in the sorting as
2961 there is no lexicographic ordering in RFC6265. Existing tests are
2962 updated to match.
2963
2964 Closes #2524
2965
2966Marcel Raad (31 Aug 2018)
2967- Don't use Windows path %PWD for SSH tests
2968
2969 All these tests failed on Windows because something like
2970 sftp://%HOSTIP:%SSHPORT%PWD/
2971 expanded to
2972 sftp://127.0.0.1:1234c:/msys64/home/bla/curl
2973 and then curl complained about the port number ending with a letter.
2974
2975 Use the original POSIX path instead of the Windows path created in
2976 checksystem to fix this.
2977
2978 Closes https://github.com/curl/curl/pull/2920
2979
2980Jay Satiro (29 Aug 2018)
2981- CURLOPT_SSL_CTX_FUNCTION.3: clarify connection reuse warning
2982
2983 Reported-by: Daniel Stenberg
2984
2985 Closes https://github.com/curl/curl/issues/2916
2986
2987Daniel Stenberg (28 Aug 2018)
2988- THANKS-filter: dedup Daniel Jeliński
2989
2990- RELEASE-NOTES: synced
2991
2992- CURLOPT_ACCEPT_ENCODING.3: list them comma-separated [ci skip]
2993
2994- CURLOPT_SSL_CTX_FUNCTION.3: might cause unintended connection reuse [ci skip]
2995
2996 Added a warning!
2997
2998 Closes #2915
2999
3000- curl: fix time-of-check, time-of-use race in dir creation
3001
3002 Patch-by: Jay Satiro
3003 Detected by Coverity
3004 Fixes #2739
3005 Closes #2912
3006
3007- cmdline-opts/page-footer: fix edit mistake
3008
3009 There was a missing newline.
3010
3011 follow-up to a7ba60bb7250
3012
3013- docs: clarify NO_PROXY env variable functionality
3014
3015 Reported-by: Kirill Marchuk
3016 Fixes #2773
3017 Closes #2911
3018
3019Marcel Raad (24 Aug 2018)
3020- lib1522: fix curl_easy_setopt argument type
3021
3022 CURLOPT_POSTFIELDSIZE is a long option.
3023
3024- curl_threads: silence bad-function-cast warning
3025
3026 As uintptr_t and HANDLE are always the same size, this warning is
3027 harmless. Just silence it using an intermediate uintptr_t variable.
3028
3029 Closes https://github.com/curl/curl/pull/2908
3030
3031Daniel Stenberg (24 Aug 2018)
3032- README: add appveyor build badge [ci skip]
3033
3034 Closes #2913
3035
3036- [Ihor Karpenko brought this change]
3037
3038 schannel: client certificate store opening fix
3039
3040 1) Using CERT_STORE_OPEN_EXISTING_FLAG ( or CERT_STORE_READONLY_FLAG )
3041 while opening certificate store would be sufficient in this scenario and
3042 less-demanding in sense of required user credentials ( for example,
3043 IIS_IUSRS will get "Access Denied" 0x05 error for existing CertOpenStore
3044 call without any of flags mentioned above ),
3045
3046 2) as 'cert_store_name' is a DWORD, attempt to format its value like a
3047 string ( in "Failed to open cert store" error message ) will throw null
3048 pointer exception
3049
3050 3) adding GetLastError(), in my opinion, will make error message more
3051 useful.
3052
3053 Bug: https://curl.haxx.se/mail/lib-2018-08/0198.html
3054
3055 Closes #2909
3056
3057- [Leonardo Taccari brought this change]
3058
3059 gopher: Do not translate `?' to `%09'
3060
3061 Since GOPHER support was added in curl `?' character was automatically
3062 translated to `%09' (`\t').
3063
3064 However, this behaviour does not seems documented in RFC 4266 and for
3065 search selectors it is documented to directly use `%09' in the URL.
3066 Apart that several gopher servers in the current gopherspace have CGI
3067 support where `?' is used as part of the selector and translating it to
3068 `%09' often leads to surprising results.
3069
3070 Closes #2910
3071
3072Marcel Raad (23 Aug 2018)
3073- cookie tests: treat files as text
3074
3075 Fixes test failures because of wrong line endings on Windows.
3076
3077Daniel Stenberg (23 Aug 2018)
3078- libcurl-thread.3: expand somewhat on the NO_SIGNAL motivation
3079
3080 Multi-threaded applictions basically MUST set CURLOPT_NO_SIGNAL to 1L to
3081 avoid the risk of getting a SIGPIPE.
3082
3083 Either way, a multi-threaded application that uses libcurl/openssl needs
3084 to have a signhandler for or ignore SIGPIPE on its own.
3085
3086 Based on discussions in #2800
3087 Closes #2904
3088
3089- RELEASE-NOTES: synced
3090
3091Marcel Raad (22 Aug 2018)
3092- Tests: fixes for Windows
3093
3094 - test 1268 requires unix sockets
3095 - test 2072 must be disabled also for MSYS/MinGW
3096
3097Daniel Stenberg (22 Aug 2018)
3098- http2: abort the send_callback if not setup yet
3099
3100 When Curl_http2_done() gets called before the http2 data is setup all
3101 the way, we cannot send anything and this should just return an error.
3102
3103 Detected by OSS-Fuzz
3104 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10012
3105
3106- http2: remove four unused nghttp2 callbacks
3107
3108 Closes #2903
3109
3110- x509asn1: use FALLTHROUGH
3111
3112 ... as no other comments are accepted since 014ed7c22f51463
3113
3114Marcel Raad (21 Aug 2018)
3115- test1148: disable if decimal separator is not point
3116
3117 Modifying the locale with environment variables doesn't work for native
3118 Windows applications. Just disable the test in this case if the decimal
3119 separator is something different than a point. Use a precheck with a
3120 small C program to achieve that.
3121
3122 Closes https://github.com/curl/curl/pull/2786
3123
3124- Enable more GCC warnings
3125
3126 This enables the following additional warnings:
3127 -Wold-style-definition
3128 -Warray-bounds=2 instead of the default 1
3129 -Wformat=2, but only for GCC 4.8+ as Wno-format-nonliteral is not
3130 respected for older versions
3131 -Wunused-const-variable, which enables level 2 instead of the default 1
3132 -Warray-bounds also in debug mode through -ftree-vrp
3133 -Wnull-dereference also in debug mode through
3134 -fdelete-null-pointer-checks
3135
3136 Closes https://github.com/curl/curl/pull/2747
3137
3138- curl-compilers: enable -Wimplicit-fallthrough=4 for GCC
3139
3140 This enables level 4 instead of the default level 3, which of the
3141 currently used comments only allows /* FALLTHROUGH */ to silence the
3142 warning.
3143
3144 Closes https://github.com/curl/curl/pull/2747
3145
3146- curl-compilers: enable -Wbad-function-cast on GCC
3147
3148 This warning used to be enabled only for clang as it's a bit stricter
3149 on GCC. Silence the remaining occurrences and enable it on GCC too.
3150
3151 Closes https://github.com/curl/curl/pull/2747
3152
3153- configure: conditionally enable pedantic-errors
3154
3155 Enable pedantic-errors for GCC >= 5 with --enable-werror. Before GCC 5,
3156 pedantic-errors was synonymous to -Werror=pedantic [0], which is still
3157 the case for clang [1]. With GCC 5, it became complementary [2].
3158
3159 Also fix a resulting error in acinclude.m4 as main's return type was
3160 missing, which is illegal in C99.
3161
3162 [0] https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Warning-Options.html
3163 [1] https://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages
3164 [2] https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Warning-Options.html
3165
3166 Closes https://github.com/curl/curl/pull/2747
3167
3168- Remove unused definitions
3169
3170 Closes https://github.com/curl/curl/pull/2747
3171
3172Daniel Stenberg (21 Aug 2018)
3173- x509asn1: make several functions static
3174
3175 and remove the private SIZE_T_MAX define and use the generic one.
3176
3177 Closes #2902
3178
3179- INTERNALS: require GnuTLS >= 2.11.3
3180
3181 Since the public pinning support was brought in e644866caf4. GnuTLS
3182 2.11.3 was released in October 2010.
3183
3184 Figured out in #2890
3185
3186- http2: avoid set_stream_user_data() before stream is assigned
3187
3188 ... before the stream is started, we have it set to -1.
3189
3190 Fixes #2894
3191 Closes #2898
3192
3193- SSLCERTS: improve the openssl command line
3194
3195 ... for extracting certs from a live HTTPS server to make a cacerts.pem
3196 from them.
3197
3198- docs/SECURITY-PROCESS: now we name the files after the CVE id
3199
3200- RELEASE-NOTES: synced
3201
3202- upload: change default UPLOAD_BUFSIZE to 64KB
3203
3204 To make uploads significantly faster in some circumstances.
3205
3206 Part 2 of #2888
3207 Closes #2892
3208
3209- upload: allocate upload buffer on-demand
3210
3211 Saves 16KB on the easy handle for operations that don't need that
3212 buffer.
3213
3214 Part 1 of #2888
3215
3216- [Laurent Bonnans brought this change]
3217
3218 vtls: reinstantiate engine on duplicated handles
3219
3220 Handles created with curl_easy_duphandle do not use the SSL engine set
3221 up in the original handle. This fixes the issue by storing the engine
3222 name in the internal url state and setting the engine from its name
3223 inside curl_easy_duphandle.
3224
3225 Reported-by: Anton Gerasimov
3226 Signed-of-by: Laurent Bonnans
3227 Fixes #2829
3228 Closes #2833
3229
3230- http2: make sure to send after RST_STREAM
3231
3232 If this is the last stream on this connection, the RST_STREAM might not
3233 get pushed to the wire otherwise.
3234
3235 Fixes #2882
3236 Closes #2887
3237 Researched-by: Michael Kaufmann
3238
3239- test1268: check the stderr output as "text"
3240
3241 Follow-up to 099f37e9c57
3242
3243 Pointed-out-by: Marcel Raad
3244
3245- urldata: remove unused pipe_broke struct field
3246
3247 This struct field is never set TRUE in any existing code path. This
3248 change removes the field completely.
3249
3250 Closes #2871
3251
3252- curl: warn the user if a given file name looks like an option
3253
3254 ... simply because this is usually a sign of the user having omitted the
3255 file name and the next option is instead "eaten" by the parser as a file
3256 name.
3257
3258 Add test1268 to verify
3259
3260 Closes #2885
3261
3262- http2: check nghttp2_session_set_stream_user_data return code
3263
3264 Might help bug #2688 debugging
3265
3266 Closes #2880
3267
3268- travis: revert back to gcc-7 for coverage builds
3269
3270 ... since the gcc-8 ones seem to fail frequently.
3271
3272 Follow-up from b85207199544ca
3273
3274 Closes #2886
3275
3276- RELEASE-NOTES: synced
3277
3278 ... and now listed in alphabetical order!
3279
3280- [Adrien brought this change]
3281
3282 CMake: CMake config files are defining CURL_STATICLIB for static builds
3283
3284 This change allows to use the CMake config files generated by Curl's
3285 CMake scripts for static builds of the library.
3286 The symbol CURL_STATIC lib must be defined to compile downstream,
3287 thus the config package is the perfect place to do so.
3288
3289 Fixes #2817
3290 Closes #2823
3291 Reported-by: adnn on github
3292 Reviewed-by: Sergei Nikulov
3293
3294- TODO: host name sections in config files
3295
3296Kamil Dudka (14 Aug 2018)
3297- ssh-libssh: fix infinite connect loop on invalid private key
3298
3299 Added test 656 (based on test 604) to verify the fix.
3300
3301 Bug: https://bugzilla.redhat.com/1595135
3302
3303 Closes #2879
3304
3305- ssh-libssh: reduce excessive verbose output about pubkey auth
3306
3307 The verbose message "Authentication using SSH public key file" was
3308 printed each time the ssh_userauth_publickey_auto() was called, which
3309 meant each time a packet was transferred over network because the API
3310 operates in non-blocking mode.
3311
3312 This patch makes sure that the verbose message is printed just once
3313 (when the authentication state is entered by the SSH state machine).
3314
3315Daniel Stenberg (14 Aug 2018)
3316- travis: disable h2 torture tests for "coverage"
3317
3318 Since they started to fail almost 100% since a few days.
3319
3320 Closes #2876
3321
3322Marcel Raad (14 Aug 2018)
3323- travis: update to GCC 8
3324
3325 Closes https://github.com/curl/curl/pull/2869
3326
3327Daniel Stenberg (13 Aug 2018)
3328- http: fix for tiny "HTTP/0.9" response
3329
3330 Deal with tiny "HTTP/0.9" (header-less) responses by checking the
3331 status-line early, even before a full "HTTP/" is received to allow
3332 detecting 0.9 properly.
3333
3334 Test 1266 and 1267 added to verify.
3335
3336 Fixes #2420
3337 Closes #2872
3338
3339Kamil Dudka (13 Aug 2018)
3340- docs: add disallow-username-in-url.d and haproxy-protocol.d on the list
3341
3342 ... to make make the files appear in distribution tarballs
3343
3344 Closes #2856
3345
3346- .travis.yml: verify that man pages can be regenerated
3347
3348 ... when curl is built from distribution tarball
3349
3350 Closes #2856
3351
3352Marcel Raad (11 Aug 2018)
3353- Split non-portable part off test 1133
3354
3355 Split off testing file names with double quotes into new test 1158.
3356 Disable it for MSYS using a precheck as it doesn't support file names
3357 with double quotes (but Cygwin does, for example).
3358
3359 Fixes https://github.com/curl/curl/issues/2796
3360 Closes https://github.com/curl/curl/pull/2854
3361
3362Jay Satiro (11 Aug 2018)
3363- projects: Improve Windows perl detection in batch scripts
3364
3365 - Determine if perl is in the user's PATH by running perl.exe.
3366
3367 Prior to this change detection was done by checking the PATH for perl/
3368 but that did not work in all cases (eg git install includes perl but
3369 not in perl/ path).
3370
3371 Bug: https://github.com/curl/curl/pull/2865
3372 Reported-by: Daniel Jeliński
3373
3374- [Michael Kaufmann brought this change]
3375
3376 docs: Improve the manual pages of some callbacks
3377
3378 - CURLOPT_HEADERFUNCTION: add newlines
3379 - CURLOPT_INTERLEAVEFUNCTION: fix the description of 'userdata'
3380 - CURLOPT_READDATA: mention crashes, same as in CURLOPT_WRITEDATA
3381 - CURLOPT_READFUNCTION: rename 'instream' to 'userdata' and explain
3382 how to set it
3383
3384 Closes https://github.com/curl/curl/pull/2868
3385
3386Marcel Raad (11 Aug 2018)
3387- GCC: silence -Wcast-function-type uniformly
3388
3389 Pointed-out-by: Rikard Falkeborn
3390 Closes https://github.com/curl/curl/pull/2860
3391
3392- Silence GCC 8 cast-function-type warnings
3393
3394 On Windows, casting between unrelated function types is fine and
3395 sometimes even necessary, so just use an intermediate cast to
3396 (void (*) (void)) to silence the warning as described in [0].
3397
3398 [0] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html
3399
3400 Closes https://github.com/curl/curl/pull/2860
3401
3402Daniel Stenberg (11 Aug 2018)
3403- CURLINFO_SIZE_UPLOAD: fix missing counter update
3404
3405 Adds test 1522 for verification.
3406
3407 Reported-by: cjmsoregan
3408 Fixes #2847
3409 Closes #2864
3410
3411- [Daniel Jelinski brought this change]
3412
3413 Documentation: fix CURLOPT_SSH_COMPRESSION copy/paste bug
3414
3415 Closes #2867
3416
3417- RELEASE-NOTES: synced
3418
3419- openssl: fix potential NULL pointer deref in is_pkcs11_uri
3420
3421 Follow-up to 298d2565e
3422 Coverity CID 1438387
3423
3424Marcel Raad (10 Aug 2018)
3425- travis: execute "set -eo pipefail" for coverage build
3426
3427 Follow-up to 2de63ab179eb78630ee039ad94fb2a5423df522d and
3428 0b87c963252d3504552ee0c8cf4402bd65a80af5.
3429
3430 Closes https://github.com/curl/curl/pull/2862
3431
3432Daniel Stenberg (10 Aug 2018)
3433- lib1502: fix memory leak in torture test
3434
3435 Reported-by: Marcel Raad
3436 Fixes #2861
3437 Closes #2863
3438
3439- docs: mention NULL is fine input to several functions
3440
3441 Fixes #2837
3442 Closes #2858
3443 Reported-by: Markus Elfring
3444
3445- [Bas van Schaik brought this change]
3446
3447 README.md: add LGTM.com code quality grade for C/C++
3448
3449 Closes #2857
3450
3451- [Rikard Falkeborn brought this change]
3452
3453 test1531: Add timeout
3454
3455 Previously, the macro TEST_HANG_TIMEOUT was unused, but since there is
3456 looping going on, we might as well add timing instead of removing it.
3457
3458 Closes #2853
3459
3460- [Rikard Falkeborn brought this change]
3461
3462 test1540: Remove unused macro TEST_HANG_TIMEOUT
3463
3464 The macro has never been used, and it there is not really any place
3465 where it would make sense to add timing checks.
3466
3467 Closes #2852
3468
3469- [Rikard Falkeborn brought this change]
3470
3471 asyn-thread: Remove unused macro
3472
3473 The macro seems to never have been used.
3474
3475 Closes #2852
3476
3477- [Rikard Falkeborn brought this change]
3478
3479 http_proxy: Remove unused macro SELECT_TIMEOUT
3480
3481 Usage was removed in 5113ad0424044458ac497fa1458ebe0101356b22.
3482
3483 Closes #2852
3484
3485- [Rikard Falkeborn brought this change]
3486
3487 formdata: Remove unused macro HTTPPOST_CONTENTTYPE_DEFAULT
3488
3489 Its usage was removed in
3490 84ad1fd3047815f9c6e78728bb351b828eac10b1.
3491
3492 Closes #2852
3493
3494- [Rikard Falkeborn brought this change]
3495
3496 telnet: Remove unused macros TELOPTS and TELCMDS
3497
3498 Their usage was removed in 3a145180cc754a5959ca971ef3cd243c5c83fc51.
3499
3500 Closes #2852
3501
3502- [Daniel Jelinski brought this change]
3503
3504 openssl: fix debug messages
3505
3506 Fixes #2806
3507 Closes #2843
3508
3509- configure: fix for -lpthread detection with OpenSSL and pkg-config
3510
3511 ... by making sure it uses the -I provided by pkg-config!
3512
3513 Reported-by: pszemus on github
3514 Fixes #2848
3515 Closes #2850
3516
3517- RELEASE-NOTES: synced
3518
3519- windows: follow up to the buffer-tuning 1ba1dba7
3520
3521 Somehow I didn't include the amended version of the previous fix. This
3522 is the missing piece.
3523
3524 Pointed-out-by: Viktor Szakats
3525
3526- [Daniel Jelinski brought this change]
3527
3528 windows: implement send buffer tuning
3529
3530 Significantly enhances upload performance on modern Windows versions.
3531
3532 Bug: https://curl.haxx.se/mail/lib-2018-07/0080.html
3533 Closes #2762
3534 Fixes #2224
3535
3536- [Anderson Toshiyuki Sasaki brought this change]
3537
3538 ssl: set engine implicitly when a PKCS#11 URI is provided
3539
3540 This allows the use of PKCS#11 URI for certificates and keys without
3541 setting the corresponding type as "ENG" and the engine as "pkcs11"
3542 explicitly. If a PKCS#11 URI is provided for certificate, key,
3543 proxy_certificate or proxy_key, the corresponding type is set as "ENG"
3544 if not provided and the engine is set to "pkcs11" if not provided.
3545
3546 Acked-by: Nikos Mavrogiannopoulos
3547 Closes #2333
3548
3549- [Ruslan Baratov brought this change]
3550
3551 CMake: Respect BUILD_SHARED_LIBS
3552
3553 Use standard CMake variable BUILD_SHARED_LIBS instead of introducing
3554 custom option CURL_STATICLIB.
3555
3556 Use '-DBUILD_SHARED_LIBS=%SHARED%' in appveyor.yml.
3557
3558 Reviewed-by: Sergei Nikulov
3559 Closes #2755
3560
3561- [John Butterfield brought this change]
3562
3563 cmake: bumped minimum version to 3.4
3564
3565 Closes #2753
3566
3567- [John Butterfield brought this change]
3568
3569 cmake: link curl to the OpenSSL targets instead of lib absolute paths
3570
3571 Reviewed-by: Jakub Zakrzewski
3572 Reviewed-by: Sergei Nikulov
3573 Closes #2753
3574
3575- travis: build darwinssl on macos 10.12
3576
3577 ... as building on 10.13.x before 10.13.4 leads to link errors.
3578
3579 Assisted-by: Nick Zitzmann
3580 Fixes #2835
3581 Closes #2845
3582
3583- DEPRECATE: remove release date from 7.62.0
3584
3585 Since it will slip and the version is the important part there, not the
3586 date.
3587
3588- lib/Makefile: only do symbol hiding if told to
3589
3590 This restores the ability to build a static lib with
3591 --disable-symbol-hiding to keep non-curl_ symbols.
3592
3593 Researched-by: Dan Fandrich
3594 Reported-by: Ran Mozes
3595 Fixes #2830
3596 Closes #2831
3597
3598Marcel Raad (2 Aug 2018)
3599- hostip: fix unused variable warning
3600
3601 addresses is only used in an infof call, which is a macro expanding to
3602 nothing if CURL_DISABLE_VERBOSE_STRINGS is set.
3603
3604Daniel Stenberg (2 Aug 2018)
3605- test1307: disabled
3606
3607 Turns out that since we're using the native fnmatch function now when
3608 available, and they simply disagree on a huge number of test patterns
3609 that make it hard to test this function like this...
3610
3611 Fixes #2825
3612
3613- smb: don't mark it done in smb_do
3614
3615 Follow-up to 09e401e01bf9. The SMB protocol handler needs to use its
3616 doing function too, which requires smb_do() to not mark itself as
3617 done...
3618
3619 Closes #2822
3620
3621- [Rikard Falkeborn brought this change]
3622
3623 general: fix printf specifiers
3624
3625 Closes #2818
3626
3627- RELEASE-NOTES: synced
3628
3629- mailmap: Daniel Jelinski
3630
3631- [Harry Sintonen brought this change]
3632
3633 HTTP: Don't attempt to needlessly decompress redirect body
3634
3635 This change fixes a regression where redirect body would needlessly be
3636 decompressed even though it was to be ignored anyway. As it happens this
3637 causes secondary issues since there appears to be a bug in apache2 that
3638 it in certain conditions generates a corrupt zlib response. The
3639 regression was created by commit:
3640 dbcced8e32b50c068ac297106f0502ee200a1ebd
3641
3642 Discovered-by: Harry Sintonen
3643 Closes #2798
3644
3645- curl: use Content-Disposition before the "URL end" for -OJ
3646
3647 Regression introduced in 7.61.0
3648
3649 Reported-by: Thomas Klausner
3650 Fixes #2783
3651 Closes #2813
3652
3653- [Daniel Jelinski brought this change]
3654
3655 retry: return error if rewind was necessary but didn't happen
3656
3657 Fixes #2801
3658 Closes #2812
3659
3660- http2: clear the drain counter in Curl_http2_done
3661
3662 Reported-by: Andrei Virtosu
3663 Fixes #2800
3664 Closes #2809
3665
3666- smb: fix memory leak on early failure
3667
3668 ... by making sure connection related data (->share) is stored in the
3669 connection and not in the easy handle.
3670
3671 Detected by OSS-fuzz
3672 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
3673 Fixes #2769
3674 Closes #2810
3675
3676- travis: run a 'make checksrc' too
3677
3678 ... to make sure the examples are all checked.
3679
3680 Closes #2811
3681
3682Jay Satiro (29 Jul 2018)
3683- examples/ephiperfifo: checksrc compliance
3684
3685- [Michael Kaufmann brought this change]
3686
3687 sws: handle EINTR when calling select()
3688
3689 Closes https://github.com/curl/curl/pull/2808
3690
3691Daniel Stenberg (29 Jul 2018)
3692- test1157: follow-up to 35ecffb9
3693
3694 Ignore the user-agent line.
3695 Pointed-out-by: Marcel Raad
3696
3697Michael Kaufmann (29 Jul 2018)
3698- tests/http_pipe.py: Use /usr/bin/env to find python
3699
3700Daniel Stenberg (28 Jul 2018)
3701- TODO: Support Authority Information Access certificate extension (AIA)
3702
3703 Closes #2793
3704
3705- conn_free: updated comment to clarify
3706
3707 Let's call it disassociate instead of disconnect since the latter term
3708 is used so much for (TCP) connections already.
3709
3710- test1157: test -H from empty file
3711
3712 Verifies bugfix #2797
3713
3714- [Tobias Blomberg brought this change]
3715
3716 curl: Fix segfault when -H @headerfile is empty
3717
3718 The curl binary would crash if the -H command line option was given a
3719 filename to read using the @filename syntax but that file was empty.
3720
3721 Closes #2797
3722
3723- mime: check Curl_rand_hex's return code
3724
3725 Bug: https://curl.haxx.se/mail/archive-2018-07/0015.html
3726 Reported-by: Jeffrey Walton
3727 Closes #2795
3728
3729- [Josh Bialkowski brought this change]
3730
3731 docs/examples: add hiperfifo example using linux epoll/timerfd
3732
3733 Closes #2804
3734
3735- [Darío Hereñú brought this change]
3736
3737 docs/INSTALL.md: minor formatting fixes
3738
3739 Closes #2794
3740
3741- [Christopher Head brought this change]
3742
3743 docs/CURLOPT_URL: fix indentation
3744
3745 The statement, “The application does not have to keep the string around
3746 after setting this option,” appears to be indented under the RTMP
3747 paragraph. It actually applies to all protocols, not just RTMP.
3748 Eliminate the extra indentation.
3749
3750 Closes #2788
3751
3752- [Christopher Head brought this change]
3753
3754 docs/CURLOPT_WRITEFUNCTION: size is always 1
3755
3756 For compatibility with `fwrite`, the `CURLOPT_WRITEFUNCTION` callback is
3757 passed two `size_t` parameters which, when multiplied, designate the
3758 number of bytes of data passed in. In practice, CURL always sets the
3759 first parameter (`size`) to 1.
3760
3761 This practice is also enshrined in documentation and cannot be changed
3762 in future. The documentation states that the default callback is
3763 `fwrite`, which means `fwrite` must be a suitable function for this
3764 purpose. However, the documentation also states that the callback must
3765 return the number of *bytes* it successfully handled, whereas ISO C
3766 `fwrite` returns the number of items (each of size `size`) which it
3767 wrote. The only way these numbers can be equal is if `size` is 1.
3768
3769 Since `size` is 1 and can never be changed in future anyway, document
3770 that fact explicitly and let users rely on it.
3771
3772 Closes #2787
3773
3774- [Carie Pointer brought this change]
3775
3776 wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_random
3777
3778 RNG structure must be freed by call to FreeRng after its use in
3779 Curl_cyassl_random. This call fixes Valgrind failures when running the
3780 test suite with wolfSSL.
3781
3782 Closes #2784
3783
3784- [Even Rouault brought this change]
3785
3786 reuse_conn(): free old_conn->options
3787
3788 This fixes a memory leak when CURLOPT_LOGIN_OPTIONS is used, together with
3789 connection reuse.
3790
3791 I found this with oss-fuzz on GDAL and curl master:
3792 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9582
3793 I couldn't reproduce with the oss-fuzz original test case, but looking
3794 at curl source code pointed to this well reproducable leak.
3795
3796 Closes #2790
3797
3798Marcel Raad (25 Jul 2018)
3799- [Daniel Jelinski brought this change]
3800
3801 system_win32: fix version checking
3802
3803 In the current version, VERSION_GREATER_THAN_EQUAL 6.3 will return false
3804 when run on windows 10.0. This patch addresses that error.
3805
3806 Closes https://github.com/curl/curl/pull/2792
3807
3808Daniel Stenberg (24 Jul 2018)
3809- [Johannes Schindelin brought this change]
3810
3811 auth: pick Bearer authentication whenever a token is available
3812
3813 So far, the code tries to pick an authentication method only if
3814 user/password credentials are available, which is not the case for
3815 Bearer authentictation...
3816
3817 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3818 Closes #2754
3819
3820- [Johannes Schindelin brought this change]
3821
3822 auth: only ever pick CURLAUTH_BEARER if we *have* a Bearer token
3823
3824 The Bearer authentication was added to cURL 7.61.0, but there is a
3825 problem: if CURLAUTH_ANY is selected, and the server supports multiple
3826 authentication methods including the Bearer method, we strongly prefer
3827 that latter method (only CURLAUTH_NEGOTIATE beats it), and if the Bearer
3828 authentication fails, we will never even try to attempt any other
3829 method.
3830
3831 This is particularly unfortunate when we already know that we do not
3832 have any Bearer token to work with.
3833
3834 Such a scenario happens e.g. when using Git to push to Visual Studio
3835 Team Services (which supports Basic and Bearer authentication among
3836 other methods) and specifying the Personal Access Token directly in the
3837 URL (this aproach is frequently taken by automated builds).
3838
3839 Let's make sure that we have a Bearer token to work with before we
3840 select the Bearer authentication among the available authentication
3841 methods.
3842
3843 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3844 Closes #2754
3845
3846Marcel Raad (22 Jul 2018)
3847- test320: treat curl320.out file as binary
3848
3849 Otherwise, LF line endings are converted to CRLF on Windows,
3850 but no conversion is done for the reply, so the test case fails.
3851
3852 Closes https://github.com/curl/curl/pull/2776
3853
3854Daniel Stenberg (22 Jul 2018)
3855- vtls: set conn->data when closing TLS
3856
3857 Follow-up to 1b76c38904f0. The VTLS backends that close down the TLS
3858 layer for a connection still needs a Curl_easy handle for the session_id
3859 cache etc.
3860
3861 Fixes #2764
3862 Closes #2771
3863
3864Marcel Raad (21 Jul 2018)
3865- tests: fixes for Windows line endlings
3866
3867 Set mode="text" when line endings depend on the system representation.
3868
3869 Closes https://github.com/curl/curl/pull/2772
3870
3871- test214: disable MSYS2's POSIX path conversion for URL
3872
3873 By default, the MSYS2 bash converts all backslashes to forward slashes
3874 in URLs. Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
3875
3876 Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
3877
3878Daniel Stenberg (20 Jul 2018)
3879- http2: several cleanups
3880
3881 - separate easy handle from connections better
3882 - added asserts on a number of places
3883 - added sanity check of pipelines for debug builds
3884
3885 Closes #2751
3886
3887- smb_getsock: always wait for write socket too
3888
3889 ... the protocol is doing read/write a lot, so it needs to write often
3890 even when downloading. A more proper fix could check for eactly when it
3891 wants to write and only ask for it then.
3892
3893 Without this fix, an SMB download could easily get stuck when the event-driven
3894 API was used.
3895
3896 Closes #2768
3897
3898Marcel Raad (20 Jul 2018)
3899- test1143: disable MSYS2's POSIX path conversion
3900
3901 By default, the MSYS2 bash interprets http:/%HOSTIP:%HTTPPORT/want/1143
3902 as a POSIX file list and converts it to a Windows file list.
3903 Disable this with MSYS2_ARG_CONV_EXCL for the test to pass.
3904
3905 Ref https://github.com/msys2/msys2/wiki/Porting#filesystem-namespaces
3906 Closes https://github.com/curl/curl/pull/2765
3907
3908Daniel Stenberg (18 Jul 2018)
3909- RELEASE-NOTES: sync
3910
3911 ... and work toward 7.61.1
3912
3913- [Ruslan Baratov brought this change]
3914
3915 CMake: Update scripts to use consistent style
3916
3917 Closes #2727
3918 Reviewed-by: Sergei Nikulov
3919
3920- header output: switch off all styles, not just unbold
3921
3922 ... the "unbold" sequence doesn't work on the mac Terminal.
3923
3924 Reported-by: Zero King
3925 Fixes #2736
3926 Closes #2738
3927
3928Nick Zitzmann (14 Jul 2018)
3929- [Rodger Combs brought this change]
3930
3931 darwinssl: add support for ALPN negotiation
3932
3933Marcel Raad (14 Jul 2018)
3934- test1422: add required file feature
3935
3936 curl configured with --enable-debug --disable-file currently complains
3937 on test1422:
3938 Info: Protocol "file" not supported or disabled in libcurl
3939
3940 Make test1422 dependend on enabled FILE protocol to fix this.
3941
3942 Fixes https://github.com/curl/curl/issues/2741
3943 Closes https://github.com/curl/curl/pull/2742
3944
3945Patrick Monnerat (12 Jul 2018)
3946- content_encoding: accept up to 4 unknown trailer bytes after raw deflate data
3947
3948 Some servers issue raw deflate data that may be followed by an undocumented
3949 trailer. This commit makes curl tolerate such a trailer of up to 4 bytes
3950 before considering the data is in error.
3951
3952 Reported-by: clbr on github
3953 Fixes #2719
3954
3955Daniel Stenberg (12 Jul 2018)
3956- smb: fix memory-leak in URL parse error path
3957
3958 Detected by OSS-Fuzz
3959 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9369
3960 Closes #2740
3961
3962Marcel Raad (12 Jul 2018)
3963- schannel: enable CALG_TLS1PRF for w32api >= 5.1
3964
3965 The definition of CALG_TLS1PRF has been fixed in the 5.1 branch:
3966 https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/commits/73aedcc0f2e6ba370de0d86ab878ad76a0dda7b5
3967
3968Daniel Stenberg (12 Jul 2018)
3969- docs/SECURITY-PROCESS: mention bounty, drop pre-notify
3970
3971 + The hackerone bounty and its process
3972
3973 - We don't and can't handle pre-notification
3974
3975- multi: always do the COMPLETED procedure/state
3976
3977 It was previously erroneously skipped in some situations.
3978
3979 libtest/libntlmconnect.c wrongly depended on wrong behavior (that it
3980 would get a zero timeout) when no handles are "running" in a multi
3981 handle. That behavior is no longer present with this fix. Now libcurl
3982 will always return a -1 timeout when all handles are completed.
3983
3984 Closes #2733
3985
3986- Curl_getoff_all_pipelines: improved for multiplexed
3987
3988 On multiplexed connections, transfers can be removed from anywhere not
3989 just at the head as for pipelines.
3990
3991- ares: check for NULL in completed-callback
3992
3993- conn: remove the boolean 'inuse' field
3994
3995 ... as the usage needs to be counted.
3996
3997- [Paul Howarth brought this change]
3998
3999 openssl: assume engine support in 1.0.0 or later
4000
4001 Commit 38203f1585da changed engine detection to be version-based,
4002 with a baseline of openssl 1.0.1. This does in fact break builds
4003 with openssl 1.0.0, which has engine support - the configure script
4004 detects that ENGINE_cleanup() is available - but <openssl/engine.h>
4005 doesn't get included to declare it.
4006
4007 According to upstream documentation, engine support was added to
4008 mainstream openssl builds as of version 0.9.7:
4009 https://github.com/openssl/openssl/blob/master/README.ENGINE
4010
4011 This commit drops the version test down to 1.0.0 as version 1.0.0d
4012 is the oldest version I have to test with.
4013
4014 Closes #2732
4015
4016Marcel Raad (11 Jul 2018)
4017- schannel: fix MinGW compile break
4018
4019 Original MinGW's w32api has a sytax error in its definition of
4020 CALG_TLS1PRF [0]. Don't use original MinGW w32api's CALG_TLS1PRF
4021 until this bug [1] is fixed.
4022
4023 [0] https://osdn.net/projects/mingw/scm/git/mingw-org-wsl/blobs/d1d4a17e51a2b78e252ef0147d483267d56c90cc/w32api/include/wincrypt.h
4024 [1] https://osdn.net/projects/mingw/ticket/38391
4025
4026 Fixes https://github.com/curl/curl/pull/2721#issuecomment-403636043
4027 Closes https://github.com/curl/curl/pull/2728
4028
4029Daniel Stenberg (11 Jul 2018)
4030- examples/crawler.c: move #ifdef to column 0
4031
4032 Apparently the C => HTML converter on the web site doesn't quite like it
4033 otherwise.
4034
4035 Reported-by: Jeroen Ooms
4036
Elliott Hughes72d948d2018-08-03 14:37:21 -07004037Version 7.61.0 (11 Jul 2018)
4038
4039Daniel Stenberg (11 Jul 2018)
4040- release: 7.61.0
4041
4042- TODO: Configurable loading of OpenSSL configuration file
4043
4044 Closes #2724
4045
4046- post303.d: clarify that this is an RFC violation
4047
4048 ... and not the other way around, which this previously said.
4049
4050 Reported-by: Vasiliy Faronov
4051 Fixes #2723
4052 Closes #2726
4053
4054- [Ruslan Baratov brought this change]
4055
4056 CMake: remove redundant and old end-of-block syntax
4057
4058 Reviewed-by: Jakub Zakrzewski
4059 Closes #2715
4060
4061Jay Satiro (9 Jul 2018)
4062- lib/curl_setup.h: remove unicode character
4063
4064 Follow-up to 82ce416.
4065
4066 Ref: https://github.com/curl/curl/commit/8272ec5#commitcomment-29646818
4067
4068Daniel Stenberg (9 Jul 2018)
4069- lib/curl_setup.h: remove unicode bom from 8272ec50f02
4070
4071Marcel Raad (9 Jul 2018)
4072- schannel: fix -Wsign-compare warning
4073
4074 MinGW warns:
4075 /lib/vtls/schannel.c:219:64: warning: signed and unsigned type in
4076 conditional expression [-Wsign-compare]
4077
4078 Fix this by casting the ptrdiff_t to size_t as we know it's positive.
4079
4080 Closes https://github.com/curl/curl/pull/2721
4081
4082- schannel: workaround for wrong function signature in w32api
4083
4084 Original MinGW's w32api has CryptHashData's second parameter as BYTE *
4085 instead of const BYTE *.
4086
4087 Closes https://github.com/curl/curl/pull/2721
4088
4089- schannel: make more cipher options conditional
4090
4091 They are not defined in the original MinGW's <wincrypt.h>.
4092
4093 Closes https://github.com/curl/curl/pull/2721
4094
4095- curl_setup: include <winerror.h> before <windows.h>
4096
4097 Otherwise, only part of it gets pulled in through <windows.h> on
4098 original MinGW.
4099
4100 Fixes https://github.com/curl/curl/issues/2361
4101 Closes https://github.com/curl/curl/pull/2721
4102
4103- examples: fix -Wformat warnings
4104
4105 When size_t is not a typedef for unsigned long (as usually the case on
4106 Windows), GCC emits -Wformat warnings when using lu and lx format
4107 specifiers with size_t. Silence them with explicit casts to
4108 unsigned long.
4109
4110 Closes https://github.com/curl/curl/pull/2721
4111
4112Daniel Stenberg (9 Jul 2018)
4113- smtp: use the upload buffer size for scratch buffer malloc
4114
4115 ... not the read buffer size, as that can be set smaller and thus cause
4116 a buffer overflow! CVE-2018-0500
4117
4118 Reported-by: Peter Wu
4119 Bug: https://curl.haxx.se/docs/adv_2018-70a2.html
4120
4121- [Dave Reisner brought this change]
4122
4123 scripts: include _curl as part of CLEANFILES
4124
4125 Closes #2718
4126
4127- [Nick Zitzmann brought this change]
4128
4129 darwinssl: allow High Sierra users to build the code using GCC
4130
4131 ...but GCC users lose out on TLS 1.3 support, since we can't weak-link
4132 enumeration constants.
4133
4134 Fixes #2656
4135 Closes #2703
4136
4137- [Ruslan Baratov brought this change]
4138
4139 CMake: Remove unused 'output_var' from 'collect_true'
4140
4141 Variable 'output_var' is not used and can be removed.
4142 Function 'collect_true' renamed to 'count_true'.
4143
4144- [Ruslan Baratov brought this change]
4145
4146 CMake: Remove unused functions
4147
4148 Closes #2711
4149
4150- KNOWN_BUGS: Stick to same family over SOCKS proxy
4151
4152- libssh: goto DISCONNECT state on error, not SSH_SESSION_FREE
4153
4154 ... because otherwise not everything get closed down correctly.
4155
4156 Fixes #2708
4157 Closes #2712
4158
4159- libssh: include line number in state change debug messages
4160
4161 Closes #2713
4162
4163- KNOWN_BUGS: Borland support is dropped, AIX problem is too old
4164
4165- [Jeroen Ooms brought this change]
4166
4167 example/crawler.c: simple crawler based on libxml2
4168
4169 Closes #2706
4170
4171- RELEASE-NOTES: synced
4172
4173- DEPRECATE: include year when specifying date
4174
4175- DEPRECATE: linkified
4176
4177- DEPRECATE: mention the PR that disabled axTLS
4178
4179- docs/DEPRECATE.md: spelling and minor formatting
4180
4181- DEPRECATE: new doc describing planned item removals
4182
4183 Closes #2704
4184
4185- [Gisle Vanem brought this change]
4186
4187 telnet: fix clang warnings
4188
4189 telnet.c(1401,28): warning: cast from function call of type 'int' to
4190 non-matching type 'HANDLE' (aka 'void *') [-Wbad-function-cast]
4191
4192 Fixes #2696
4193 Closes #2700
4194
4195- docs: fix missed option name markups
4196
4197- [Gaurav Malhotra brought this change]
4198
4199 openssl: Remove some dead code
4200
4201 Closes #2698
4202
4203- openssl: make the requested TLS version the *minimum* wanted
4204
4205 The code treated the set version as the *exact* version to require in
4206 the TLS handshake, which is not what other TLS backends do and probably
4207 not what most people expect either.
4208
4209 Reported-by: Andreas Olsson
4210 Assisted-by: Gaurav Malhotra
4211 Fixes #2691
4212 Closes #2694
4213
4214- RELEASE-NOTES: synced
4215
4216- openssl: allow TLS 1.3 by default
4217
4218 Reported-by: Andreas Olsson
4219 Fixes #2692
4220 Closes #2693
4221
4222- [Adrian Peniak brought this change]
4223
4224 CURLINFO_TLS_SSL_PTR.3: improve the example
4225
4226 The previous example was a little bit confusing, because SSL* structure
4227 (or other "in use" SSL connection pointer) is not accessible after the
4228 transfer is completed, therefore working with the raw TLS library
4229 specific pointer needs to be done during transfer.
4230
4231 Closes #2690
4232
4233- travis: add a build using the synchronous name resolver
4234
4235 ... since default uses the threaded one and we test the c-ares build
4236 already.
4237
4238 Closes #2689
4239
4240- configure: remove CURL_CHECK_NI_WITHSCOPEID too
4241
4242 Since it isn't used either and requires the getnameinfo check
4243
4244 Follow-up to 0aeca41702d2
4245
4246- getnameinfo: not used
4247
4248 Closes #2687
4249
4250- easy_perform: use *multi_timeout() to get wait times
4251
4252 ... and trim the threaded Curl_resolver_getsock() to return zero
4253 millisecond wait times during the first three milliseconds so that
4254 localhost or names in the OS resolver cache gets detected and used
4255 faster.
4256
4257 Closes #2685
4258
4259Max Dymond (27 Jun 2018)
4260- configure: Add dependent libraries after crypto
4261
4262 The linker is pretty dumb and processes things left to right, keeping a
4263 tally of symbols it hasn't resolved yet. So, we need -ldl to appear
4264 after -lcrypto otherwise the linker won't find the dl functions.
4265
4266 Closes #2684
4267
4268Daniel Stenberg (27 Jun 2018)
4269- GOVERNANCE: linkify, changed some titles
4270
4271- GOVERNANCE: add maintainer details/duties
4272
4273- url: check Curl_conncache_add_conn return code
4274
4275 ... it was previously unchecked in two places and thus errors could
4276 remain undetected and cause trouble.
4277
4278 Closes #2681
4279
4280- include/README: remove "hacking" advice, not the right place
4281
4282- RELEASE-NOTES: synced
4283
4284- CURLOPT_SSL_VERIFYPEER.3: fix syntax mistake
4285
4286 Follow-up to b6a16afa0aa5
4287
4288- netrc: use a larger buffer
4289
4290 ... to work with longer passwords etc. Grow it from a 256 to a 4096
4291 bytes buffer.
4292
4293 Reported-by: Dario Nieuwenhuis
4294 Fixes #2676
4295 Closes #2680
4296
4297- [Patrick Schlangen brought this change]
4298
4299 CURLOPT_SSL_VERIFYPEER.3: Add performance note
4300
4301 Closes #2673
4302
4303- [Javier Blazquez brought this change]
4304
4305 multi: fix crash due to dangling entry in connect-pending list
4306
4307 Fixes #2677
4308 Closes #2679
4309
4310- ConnectionExists: make sure conn->data is set when "taking" a connection
4311
4312 Follow-up to 2c15693.
4313
4314 Bug #2674
4315 Closes #2675
4316
4317- [Kevin R. Bulgrien brought this change]
4318
4319 system.h: fix for gcc on 32 bit OpenServer
4320
4321 Bug: https://curl.haxx.se/mail/lib-2018-06/0100.html
4322
4323- [Raphael Gozzo brought this change]
4324
4325 cmake: allow multiple SSL backends
4326
4327 This will make possible to select the SSL backend (using
4328 curl_global_sslset()) even when the libcurl is built using CMake
4329
4330 Closes #2665
4331
4332- url: fix dangling conn->data pointer
4333
4334 By masking sure to use the *current* easy handle with extracted
4335 connections from the cache, and make sure to NULLify the ->data pointer
4336 when the connection is put into the cache to make this mistake easier to
4337 detect in the future.
4338
4339 Reported-by: Will Dietz
4340 Fixes #2669
4341 Closes #2672
4342
4343- CURLOPT_INTERFACE.3: interface names not supported on Windows
4344
4345- travis: run more tests for coverage check
4346
4347 ... run a few more tortured based and run all tests event-based.
4348
4349 Closes #2664
4350
4351- multi: fix memory leak when stopped during name resolve
4352
4353 When the application just started the transfer and then stops it while
4354 the name resolve in the background thread hasn't completed, we need to
4355 wait for the resolve to complete and then cleanup data accordingly.
4356
4357 Enabled test 1553 again and added test 1590 to also check when the host
4358 name resolves successfully.
4359
4360 Detected by OSS-fuzz.
4361 Closes #1968
4362
4363Viktor Szakats (15 Jun 2018)
4364- maketgz: delete .bak files, fix indentation
4365
4366 Ref: https://github.com/curl/curl/pull/2660
4367
4368 Closes https://github.com/curl/curl/pull/2662
4369
4370Daniel Stenberg (15 Jun 2018)
4371- runtests.pl: remove debug leftover from bb9a340c73f3
4372
4373- curl-confopts.m4: fix typo from ed224f23d5beb
4374
4375 Fixes my local configure to detect a custom installed c-ares without
4376 pkgconfig.
4377
4378- docs/RELEASE-PROCEDURE.md: renamed to use .md extension
4379
4380 Closes #2663
4381
4382- RELEASE-PROCEDURE: gpg sign the tags
4383
4384- RELEASE-NOTES: synced
4385
4386- CURLOPT_HTTPAUTH.3: CURLAUTH_BEARER was added in 7.61.0
4387
4388- [Mamta Upadhyay brought this change]
4389
4390 maketgz: fix sed issues on OSX
4391
4392 maketgz creates release tarballs and removes the -DEV string in curl
4393 version (e.g. 7.58.0-DEV), else -DEV shows up on command line when curl
4394 is run. maketgz works fine on linux but fails on OSX. Problem is with
4395 the sed commands that use option -i without an extension. Maketgz
4396 expects GNU sed instead of BSD and this simply won't work on OSX. Adding
4397 a backup extension .bak after -i fixes this issue
4398
4399 Running the script as if on OSX gives this error:
4400
4401 sed: -e: No such file or directory
4402
4403 Adding a .bak extension resolves it
4404
4405 Closes #2660
4406
4407- configure: enhance ability to detect/build with static openssl
4408
4409 Fix the -ldl and -ldl + -lpthread checks for OpenSSL, necessary for
4410 building with static libs without pkg-config.
4411
4412 Reported-by: Marcel Raad
4413 Fixes #2199
4414 Closes #2659
4415
4416- configure: use pkg-config for c-ares detection
4417
4418 First check if there's c-ares information given as pkg-config info and use
4419 that as first preference.
4420
4421 Reported-by: pszemus on github
4422 Fixes #2203
4423 Closes #2658
4424
4425- GOVERNANCE.md: explains how this project is run
4426
4427 Closes #2657
4428
4429- KNOWN_BUGS: NTLM doen't support password with § character
4430
4431 Closes #2120
4432
4433- KNOWN_BUGS: slow connect to localhost on Windows
4434
4435 Closes #2281
4436
4437- [Matteo Bignotti brought this change]
4438
4439 mk-ca-bundle.pl: make -u delete certdata.txt if found not changed
4440
4441 certdata.txt should be deleted also when the process is interrupted by
4442 "same certificate downloaded, exiting"
4443
4444 The certdata.txt is currently kept on disk even if you give the -u
4445 option
4446
4447 Closes #2655
4448
4449- progress: remove a set of unused defines
4450
4451 Reported-by: Peter Wu
4452 Closes #2654
4453
4454- TODO: "Option to refuse usernames in URLs" done
4455
4456 Implemented by Björn in 946ce5b61f
4457
4458- [Lyman Epp brought this change]
4459
4460 Curl_init_do: handle NULL connection pointer passed in
4461
4462 Closes #2653
4463
4464- runtests: support variables in <strippart>
4465
4466 ... and make use of that to make 1455 work better without using a fixed
4467 local port number.
4468
4469 Fixes #2649
4470 Closes #2650
4471
4472- Curl_debug: remove dead printhost code
4473
4474 The struct field is never set (since 5e0d9aea3) so remove the use of it
4475 and remove the connectdata pointer from the prototype.
4476
4477 Reported-by: Tejas
4478 Bug: https://curl.haxx.se/mail/lib-2018-06/0054.html
4479 Closes #2647
4480
4481Viktor Szakats (12 Jun 2018)
4482- schannel: avoid incompatible pointer warning
4483
4484 with clang-6.0:
4485 ```
4486 vtls/schannel_verify.c: In function 'add_certs_to_store':
4487 vtls/schannel_verify.c:212:30: warning: passing argument 11 of 'CryptQueryObject' from incompatible pointer type [-Wincompatible-pointer-types]
4488 &cert_context)) {
4489 ^
4490 In file included from /usr/share/mingw-w64/include/schannel.h:10:0,
4491 from /usr/share/mingw-w64/include/schnlsp.h:9,
4492 from vtls/schannel.h:29,
4493 from vtls/schannel_verify.c:40:
4494 /usr/share/mingw-w64/include/wincrypt.h:4437:26: note: expected 'const void **' but argument is of type 'CERT_CONTEXT ** {aka struct _CERT_CONTEXT **}'
4495 WINIMPM WINBOOL WINAPI CryptQueryObject (DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags,
4496 ^~~~~~~~~~~~~~~~
4497 ```
4498 Ref: https://msdn.microsoft.com/library/windows/desktop/aa380264
4499
4500 Closes https://github.com/curl/curl/pull/2648
4501
4502Daniel Stenberg (12 Jun 2018)
4503- [Robert Prag brought this change]
4504
4505 schannel: support selecting ciphers
4506
4507 Given the contstraints of SChannel, I'm exposing these as the algorithms
4508 themselves instead; while replicating the ciphersuite as specified by
4509 OpenSSL would have been preferable, I found no way in the SChannel API
4510 to do so.
4511
4512 To use this from the commandline, you need to pass the names of contants
4513 defining the desired algorithms. For example, curl --ciphers
4514 "CALG_SHA1:CALG_RSA_SIGN:CALG_RSA_KEYX:CALG_AES_128:CALG_DH_EPHEM"
4515 https://github.com The specific names come from wincrypt.h
4516
4517 Closes #2630
4518
4519- [Bernhard M. Wiedemann brought this change]
4520
4521 test 46: make test pass after 2025
4522
4523 shifting the expiry date to 2037 for now
4524 to be before the possibly problematic year 2038
4525
4526 similar in spirit to commit e6293cf8764e9eecb
4527
4528 Closes #2646
4529
4530- [Marian Klymov brought this change]
4531
4532 cppcheck: fix warnings
4533
4534 - Get rid of variable that was generating false positive warning
4535 (unitialized)
4536
4537 - Fix issues in tests
4538
4539 - Reduce scope of several variables all over
4540
4541 etc
4542
4543 Closes #2631
4544
4545- openssl: assume engine support in 1.0.1 or later
4546
4547 Previously it was checked for in configure/cmake, but that would then
4548 leave other build systems built without engine support.
4549
4550 While engine support probably existed prior to 1.0.1, I decided to play
4551 safe. If someone experience a problem with this, we can widen the
4552 version check.
4553
4554 Fixes #2641
4555 Closes #2644
4556
4557- RELEASE-NOTES: synced
4558
4559- RELEASE-PROCEDURE: update the release calendar for 2019
4560
4561- [Gisle Vanem brought this change]
4562
4563 boringssl + schannel: undef X509_NAME in lib/schannel.h
4564
4565 Fixes the build problem when both boringssl and schannel are enabled.
4566
4567 Fixes #2634
4568 Closes #2643
4569
4570- [Vladimir Kotal brought this change]
4571
4572 mk-ca-bundle.pl: leave certificate name untouched in decode()
4573
4574 Closes #2640
4575
4576- [Rikard Falkeborn brought this change]
4577
4578 tests/libtests/Makefile.am: Add lib1521.c to CLEANFILES
4579
4580 This removes the generated lib1521.c when running make clean.
4581
4582 Closes #2633
4583
4584- [Rikard Falkeborn brought this change]
4585
4586 tests/libtest: Add lib1521 to nodist_SOURCES
4587
4588 Since 467da3af0, lib1521.c is generated instead of checked in. According
4589 to the commit message, the intention was to remove it from the tarball
4590 as well. However, it is still present when running make dist. To remove
4591 it, add it to nodist_lib1521_SOURCES. This also means there is no need
4592 for the manually added dist-rule in the Makefile.
4593
4594 Also update CMakelists.txt to handle the fact that we now may have
4595 nodist_SOURCES.
4596
4597- [Stephan Mühlstrasser brought this change]
4598
4599 system.h: add support for IBM xlc C compiler
4600
4601 Added a section to system.h guarded with __xlc__ for the IBM xml C
4602 compiler. Before this change the section titled 'generic "safe guess" on
4603 old 32 bit style' was used, which resulted in a wrong definition of
4604 CURL_TYPEOF_CURL_SOCKLEN_T, and for 64-bit also CURL_TYPEOF_CURL_OFF_T
4605 was wrong.
4606
4607 Compilation warnings fixed with this change:
4608
4609 CC libcurl_la-ftp.lo
4610 "ftp.c", line 290.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4611 "ftp.c", line 293.48: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4612 "ftp.c", line 1070.49: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4613 "ftp.c", line 1154.53: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4614 "ftp.c", line 1187.51: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4615 CC libcurl_la-connect.lo
4616 "connect.c", line 448.56: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4617 "connect.c", line 516.66: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4618 "connect.c", line 687.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4619 "connect.c", line 696.55: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4620 CC libcurl_la-tftp.lo
4621 "tftp.c", line 1115.33: 1506-280 (W) Function argument assignment between types "unsigned long* restrict" and "int*" is not allowed.
4622
4623 Closes #2637
4624
4625- cmdline-opts/cert-type.d: mention "p12" as a recognized type as well
4626
4627Viktor Szakats (3 Jun 2018)
4628- spelling fixes
4629
4630 Detected using the `codespell` tool (version 1.13.0).
4631
4632 Also secure and fix an URL.
4633
4634Daniel Stenberg (2 Jun 2018)
4635- axtls: follow-up spell fix of comment
4636
4637- axTLS: not considered fit for use
4638
4639 URL: https://curl.haxx.se/mail/lib-2018-06/0000.html
4640
4641 This is step one. It adds #error statements that require source edits to
4642 make curl build again if asked to use axTLS. At a later stage we might
4643 remove the axTLS specific code completely.
4644
4645 Closes #2628
4646
4647- build: remove the Borland specific makefiles
4648
4649 According to the user survey 2018, not even one out of 670 users use
4650 them. Nobody on the mailing list spoke up for them either.
4651
4652 Closes #2629
4653
4654- curl_addrinfo: use same #ifdef conditions in source as header
4655
4656 ... for curl_dofreeaddrinfo
4657
4658- multi: remove a DEBUGF()
4659
4660 ... it might call infof() with a NULL first argument that isn't harmful
4661 but makes it not do anything. The infof() line is not very useful
4662 anymore, it has served it purpose. Good riddance!
4663
4664 Fixes #2627
4665
4666- [Alibek.Jorajev brought this change]
4667
4668 CURLOPT_RESOLVE: always purge old entry first
4669
4670 If there's an existing entry using the selected name.
4671
4672 Closes #2622
4673
4674- fnmatch: use the system one if available
4675
4676 If configure detects fnmatch to be available, use that instead of our
4677 custom one for FTP wildcard pattern matching. For standard compliance,
4678 to reduce our footprint and to use already well tested and well
4679 exercised code.
4680
4681 A POSIX fnmatch behaves slightly different than the internal function
4682 for a few test patterns currently and the macOS one yet slightly
4683 different. Test case 1307 is adjusted for these differences.
4684
4685 Closes #2626
4686
4687Patrick Monnerat (31 May 2018)
4688- os400: add new option in ILE/RPG binding
4689
4690 Follow-up to commit 946ce5b
4691
4692Daniel Stenberg (31 May 2018)
4693- tests/libtest/.gitignore: follow-up fix to ignore lib5* too
4694
4695- KNOWN_BUGS: CURL_GLOBAL_SSL
4696
4697 Closes #2276
4698
4699- [Bernhard Walle brought this change]
4700
4701 configure: check for declaration of getpwuid_r
4702
4703 On our x86 Android toolchain, getpwuid_r is implemented but the header
4704 is missing:
4705
4706 netrc.c:81:7: error: implicit declaration of function 'getpwuid_r' [-Werror=implicit-function-declaration]
4707
4708 Unfortunately, the function is used in curl_ntlm_wb.c, too, so I moved
4709 the prototype to curl_setup.h.
4710
4711 Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
4712 Closes #2609
4713
4714- [Rikard Falkeborn brought this change]
4715
4716 tests: update .gitignore for libtests
4717
4718 Closes #2624
4719
4720- [Rikard Falkeborn brought this change]
4721
4722 strictness: correct {infof, failf} format specifiers
4723
4724 Closes #2623
4725
4726- [Björn Stenberg brought this change]
4727
4728 option: disallow username in URL
4729
4730 Adds CURLOPT_DISALLOW_USERNAME_IN_URL and --disallow-username-in-url. Makes
4731 libcurl reject URLs with a username in them.
4732
4733 Closes #2340
4734
4735- libcurl-security.3: improved layout for two rememdy lists
4736
4737- libcurl-security.3: refer to URL instead of in-source markdown file
4738
4739Viktor Szakats (30 May 2018)
4740- curl.rc: embed manifest for correct Windows version detection
4741
4742 * enable it in `src/Makefile.m32`
4743 * enable it in `winbuild/MakefileBuild.vc` if a custom manifest is
4744 _not_ enabled via the existing `EMBED_MANIFEST` option
4745 * enable it for all Windows CMake builds (also disable the built-in
4746 minimal manifest, added by CMake by default.)
4747
4748 For other build systems, add the `-DCURL_EMBED_MANIFEST` option to
4749 the list of RC (Resource Compiler) flags to enable the manifest
4750 included in `src/curl.rc`. This may require to disable whatever
4751 automatic or other means in which way another manifest is added to
4752 `curl.exe`.
4753
4754 Notice that Borland C doesn't support this method due to a
4755 long-pending resource compiler bug. Watcom C may also not handle
4756 it correctly when the `-zm` `wrc` option is used (this option may
4757 be unnecessary though) and regardless of options in certain earlier
4758 revisions of the 2.0 beta version.
4759
4760 Closes https://github.com/curl/curl/pull/1221
4761 Fixes https://github.com/curl/curl/issues/2591
4762
4763Patrick Monnerat (30 May 2018)
4764- os400: sync EBCDIC wrappers and ILE/RPG binding with latest options
4765
4766- os400: implement mime api EBCDIC wrappers
4767
4768 Also sync ILE/RPG binding to define the new functions.
4769
4770Daniel Stenberg (29 May 2018)
4771- setopt: add TLS 1.3 ciphersuites
4772
4773 Adds CURLOPT_TLS13_CIPHERS and CURLOPT_PROXY_TLS13_CIPHERS.
4774
4775 curl: added --tls13-ciphers and --proxy-tls13-ciphers
4776
4777 Fixes #2435
4778 Reported-by: zzq1015 on github
4779 Closes #2607
4780
4781- configure: override AR_FLAGS to silence warning
4782
4783 The automake default ar flags are 'cru', but the 'u' flag in there
4784 causes warnings on many modern Linux distros. Removing 'u' may have a
4785 minor performance impact on older distros but should not cause harm.
4786
4787 Explained on the automake mailing list already back in April 2015:
4788
4789 https://www.mail-archive.com/automake-patches@gnu.org/msg07705.html
4790
4791 Reported-by: elephoenix on github
4792 Fixes #2617
4793 Closes #2619
4794
4795Sergei Nikulov (29 May 2018)
4796- cmake: fixed comments in compile checks code
4797
4798Daniel Stenberg (29 May 2018)
4799- INSTALL: LDFLAGS=-Wl,-R/usr/local/ssl/lib
4800
4801 ... the older description doesn't work
4802
4803 Reported-by: Peter Varga
4804 Fixes #2615
4805 Closes #2616
4806
4807- [Will Dietz brought this change]
4808
4809 KNOWN_BUGS: restore text regarding #2101.
4810
4811 This was added earlier but appears to have been removed accidentally.
4812
4813 AFAICT this is very much still an issue.
4814
4815 -----
4816
4817 I say "accidentally" because the text seems to have harmlessly snuck
4818 into [1] (which makes no mention of it). [1] was later reverted for
4819 unspecified reasons in [2], presumably because the mentioned issue was
4820 fixed or invalid.
4821
4822 [1] de9fac00c40db321d44fa6fbab6eb62ec4c83998
4823 [2] 16d1f369403cbb04bd7b085eabbeebf159473fc2
4824
4825 Closes #2618
4826
4827- fnmatch: insist on escaped bracket to match
4828
4829 A non-escaped bracket ([) is for a character group - as documented. It
4830 will *not* match an individual bracket anymore. Test case 1307 updated
4831 accordingly to match.
4832
4833 Problem detected by OSS-Fuzz, although this fix is probably not a final
4834 fix for the notorious timeout issues.
4835
4836 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8525
4837 Closes #2614
4838
4839Patrick Monnerat (28 May 2018)
4840- psl: use latest psl and refresh it periodically
4841
4842 The latest psl is cached in the multi or share handle. It is refreshed
4843 before use after 72 hours.
4844 New share lock CURL_LOCK_DATA_PSL controls the psl cache sharing.
4845 If the latest psl is not available, the builtin psl is used.
4846
4847 Reported-by: Yaakov Selkowitz
4848 Fixes #2553
4849 Closes #2601
4850
4851Daniel Stenberg (28 May 2018)
4852- [Fabrice Fontaine brought this change]
4853
4854 configure: fix ssh2 linking when built with a static mbedtls
4855
4856 The ssh2 pkg-config file could contain the following lines when build
4857 with a static version of mbedtls:
4858 Libs: -L${libdir} -lssh2 /xxx/libmbedcrypto.a
4859 Libs.private: /xxx/libmbedcrypto.a
4860
4861 This static mbedtls library must be used to correctly detect ssh2
4862 support and this library must be copied in libcurl.pc otherwise
4863 compilation of any application (such as upmpdcli) with libcurl will fail
4864 when trying to found mbedtls functions included in libssh2. So, replace
4865 pkg-config --libs-only-l by pkg-config --libs.
4866
4867 Fixes:
4868 - http://autobuild.buildroot.net/results/43e24b22a77f616d6198c10435dcc23cc3b9088a
4869
4870 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
4871 Closes #2613
4872
4873- RELEASE-NOTES: synced
4874
4875- [Bernhard Walle brought this change]
4876
4877 cmake: check for getpwuid_r
4878
4879 The autotools-based build system does it, so we do it also in CMake.
4880
4881 Bug: #2609
4882 Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
4883
4884- cmdline-opts/gen.pl: warn if mutexes: or see-also: list non-existing options
4885
4886- [Frank Gevaerts brought this change]
4887
4888 curl.1: Fix cmdline-opts reference errors.
4889
4890 --data, --form, and --ntlm were declared to be mutually exclusive with
4891 non-existing options. --data and --form referred to --upload (which is
4892 short for --upload-file and therefore did work, so this one was merely
4893 a bit confusing), --ntlm referred to --negotiated instead of --negotiate.
4894
4895 Closes #2612
4896
4897- [Frank Gevaerts brought this change]
4898
4899 docs: fix cmdline-opts metadata headers case consistency.
4900
4901 Almost all headers start with an uppercase letter, but some didn't.
4902
4903- mailmap: Max Savenkov
4904
4905Sergei Nikulov (28 May 2018)
4906- [Max Savenkov brought this change]
4907
4908 Fix the test for fsetxattr and strerror_r tests in CMake to work without compiling
4909
4910Daniel Stenberg (27 May 2018)
4911- mailmap: a Richard Alcock fixup
4912
4913- [Richard Alcock brought this change]
4914
4915 schannel: add failf calls for client certificate failures
4916
4917 Closes #2604
4918
4919- [Richard Alcock brought this change]
4920
4921 winbuild: In MakefileBuild.vc fix typo DISTDIR->DIRDIST
4922
4923 Change requirement from $(DISTDIR) to $(DIRDIST)
4924
4925 closes #2603
4926
4927- [Richard Alcock brought this change]
4928
4929 winbuild: only delete OUTFILE if it exists
4930
4931 This removes the slightly annoying "Could not file LIBCURL_OBJS.inc" and
4932 "Could not find CURL_OBJS.inc.inc" message when building into a clean
4933 folder.
4934
4935 closes #2602
4936
4937- [Alejandro R. Sedeño brought this change]
4938
4939 content_encoding: handle zlib versions too old for Z_BLOCK
4940
4941 Fallback on Z_SYNC_FLUSH when Z_BLOCK is not available.
4942
4943 Fixes #2606
4944 Closes #2608
4945
4946- multi: provide a socket to wait for in Curl_protocol_getsock
4947
4948 ... even when there's no protocol specific handler setup.
4949
4950 Bug: https://curl.haxx.se/mail/lib-2018-05/0062.html
4951 Reported-by: Sean Miller
4952 Closes #2600
4953
4954- [Linus Lewandowski brought this change]
4955
4956 httpauth: add support for Bearer tokens
4957
4958 Closes #2102
4959
4960- TODO: CURLINFO_PAUSE_STATE
4961
4962 Closes #2588
4963
4964Sergei Nikulov (24 May 2018)
4965- cmake: set -d postfix for debug builds if not specified
4966 using -DCMAKE_DEBUG_POSTFIX explicitly
4967
4968 fixes #2121, obsoletes #2384
4969
4970Daniel Stenberg (23 May 2018)
4971- configure: add basic test of --with-ssl prefix
4972
4973 When given a prefix, the $PREFIX_OPENSSL/lib/openssl.pc or
4974 $PREFIX_OPENSSL/include/openssl/ssl.h files must be present or cause an
4975 error. Helps users detect when giving configure the wrong path.
4976
4977 Reported-by: Oleg Pudeyev
4978 Assisted-by: Per Malmberg
4979 Fixes #2580
4980
4981Patrick Monnerat (22 May 2018)
4982- http resume: skip body if http code 416 (range error) is ignored.
4983
4984 This avoids appending error data to already existing good data.
4985
4986 Test 92 is updated to match this change.
4987 New test 1156 checks all combinations of --range/--resume, --fail,
4988 Content-Range header and http status code 200/416.
4989
4990 Fixes #1163
4991 Reported-By: Ithubg on github
4992 Closes #2578
4993
4994Daniel Stenberg (22 May 2018)
4995- tftp: make sure error is zero terminated before printfing it
4996
4997- configure: add missing m4/ax_compile_check_sizeof.m4
4998
4999 follow-up to mistake in 6876ccf90b4
5000
5001Jay Satiro (22 May 2018)
5002- [Johannes Schindelin brought this change]
5003
5004 schannel: make CAinfo parsing resilient to CR/LF
5005
5006 OpenSSL has supported --cacert for ages, always accepting LF-only line
5007 endings ("Unix line endings") as well as CR/LF line endings ("Windows
5008 line endings").
5009
5010 When we introduced support for --cacert also with Secure Channel (or in
5011 cURL speak: "WinSSL"), we did not take care to support CR/LF line
5012 endings, too, even if we are much more likely to receive input in that
5013 form when using Windows.
5014
5015 Let's fix that.
5016
5017 Happily, CryptQueryObject(), the function we use to parse the ca-bundle,
5018 accepts CR/LF input already, and the trailing LF before the END
5019 CERTIFICATE marker catches naturally any CR/LF line ending, too. So all
5020 we need to care about is the BEGIN CERTIFICATE marker. We do not
5021 actually need to verify here that the line ending is CR/LF. Just
5022 checking for a CR or an LF is really plenty enough.
5023
5024 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
5025
5026 Closes https://github.com/curl/curl/pull/2592
5027
5028Daniel Stenberg (22 May 2018)
5029- CURLOPT_ACCEPT_ENCODING.3: add brotli and clarify a bit
5030
5031- RELEASE-NOTES: synced
5032
5033- KNOWN_BUGS: mention the -O with %-encoded file names
5034
5035 Closes #2573
5036
5037- checksrc: make sure sizeof() is used *with* parentheses
5038
5039 ... and unify the source code to adhere.
5040
5041 Closes #2563
5042
5043- curl: added --styled-output
5044
5045 It is enabled by default, so --no-styled-output will switch off the
5046 detection/use of bold headers.
5047
5048 Closes #2538
5049
5050- curl: show headers in bold
5051
5052 The feature is only enabled if the output is believed to be a tty.
5053
5054 -J: There's some minor differences and improvements in -J handling, as
5055 now J should work with -i and it actually creates a file first using the
5056 initial name and then *renames* that to the one found in
5057 Content-Disposition (if any).
5058
5059 -i: only shows headers for HTTP transfers now (as documented).
5060 Previously it would also show for pieces of the transfer that were HTTP
5061 (for example when doing FTP over a HTTP proxy).
5062
5063 -i: now shows trailers as well. Previously they were not shown at all.
5064
5065 --libcurl: the CURLOPT_HEADER is no longer set, as the header output is
5066 now done in the header callback.
5067
5068- configure: compile-time SIZEOF checks
5069
5070 ... instead of exeucting code to get the size. Removes the use of
5071 LD_LIBRARY_PATH for this.
5072
5073 Fixes #2586
5074 Closes #2589
5075 Reported-by: Bernhard Walle
5076
5077- configure: replace AC_TRY_RUN with CURL_RUN_IFELSE
5078
5079 ... and export LD_LIBRARY_PATH properly. This is a follow-up from
5080 2d4c215.
5081
5082 Fixes #2586
5083 Reported-by: Bernhard Walle
5084
5085- docs: clarify CURLOPT_HTTPGET somewhat
5086
5087 Reported-by: bsammon on github
5088 Fixes #2590
5089
5090- curl_fnmatch: only allow two asterisks for matching
5091
5092 The previous limit of 5 can still end up in situation that takes a very
5093 long time and consumes a lot of CPU.
5094
5095 If there is still a rare use case for this, a user can provide their own
5096 fnmatch callback for a version that allows a larger set of wildcards.
5097
5098 This commit was triggered by yet another OSS-Fuzz timeout due to this.
5099 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8369
5100
5101 Closes #2587
5102
5103- checksrc: fix too long line
5104
5105 follow-up to e05ad5d
5106
5107- [Aleks brought this change]
5108
5109 docs: mention HAproxy protocol "version 1"
5110
5111 ...as there's also a version 2.
5112
5113 Closes #2579
5114
5115- examples/progressfunc: make it build on older libcurls
5116
5117 This example was changed in ce2140a8c1 to use the new microsecond based
5118 getinfo option. This change makes it conditionally keep using the older
5119 option so that the example still builds with older libcurl versions.
5120
5121 Closes #2584
5122
5123- stub_gssapi: fix numerous 'unused parameter' warnings
5124
5125 follow-up to d9e92fd9fd1d
5126
5127- [Philip Prindeville brought this change]
5128
5129 getinfo: add microsecond precise timers for various intervals
5130
5131 Provide a set of new timers that return the time intervals using integer
5132 number of microseconds instead of floats.
5133
5134 The new info names are as following:
5135
5136 CURLINFO_APPCONNECT_TIME_T
5137 CURLINFO_CONNECT_TIME_T
5138 CURLINFO_NAMELOOKUP_TIME_T
5139 CURLINFO_PRETRANSFER_TIME_T
5140 CURLINFO_REDIRECT_TIME_T
5141 CURLINFO_STARTTRANSFER_TIME_T
5142 CURLINFO_TOTAL_TIME_T
5143
5144 Closes #2495
5145
5146- openssl: acknowledge --tls-max for default version too
5147
5148 ... previously it only used the max setting if a TLS version was also
5149 explicitly asked for.
5150
5151 Reported-by: byte_bucket
5152 Fixes #2571
5153 Closes #2572
5154
5155- bump: start working on the pending 7.61.0
5156
5157- [Dagobert Michelsen brought this change]
5158
5159 tests/libtest/Makefile: Do not unconditionally add gcc-specific flags
5160
5161 The warning flag leads e.g. Sun Studio compiler to bail out.
5162
5163 Closes #2576
5164
5165- schannel_verify: fix build for non-schannel
5166
5167Jay Satiro (16 May 2018)
5168- rand: fix typo
5169
5170- schannel: disable manual verify if APIs not available
5171
5172 .. because original MinGW and old compilers do not have the Windows API
5173 definitions needed to support manual verification.
5174
5175- [Archangel_SDY brought this change]
5176
5177 schannel: disable client cert option if APIs not available
5178
5179 Original MinGW targets Windows 2000 by default, which lacks some APIs and
5180 definitions for this feature. Disable it if these APIs are not available.
5181
5182 Closes https://github.com/curl/curl/pull/2522
5183
Elliott Hughes1ef06ba2018-05-30 15:43:58 -07005184Version 7.60.0 (15 May 2018)
5185
5186Daniel Stenberg (15 May 2018)
5187- RELEASE-NOTES: 7.60.0 release
5188
5189- THANKS: added people from the curl 7.60.0 release
5190
5191- docs/libcurl/index.html: removed
5192
5193 The HTML files are long gone from the dist, now remove the last HTML
5194 file pointing to those missing files.
5195
5196 d
5197
5198- [steini2000 brought this change]
5199
5200 http2: remove unused variable
5201
5202 Closes #2570
5203
5204- [steini2000 brought this change]
5205
5206 http2: use easy handle of stream for logging
5207
5208- gcc: disable picky gcc-8 function pointer warnings in two places
5209
5210 Reported-by: Rikard Falkeborn
5211 Bug: #2560
5212 Closes #2569
5213
5214- http2: use the correct function pointer typedef
5215
5216 Fixes gcc-8 picky compiler warnings
5217 Reported-by: Rikard Falkeborn
5218 Bug: #2560
5219 Closes #2568
5220
5221- CODE_STYLE: mention return w/o parens, but sizeof with
5222
5223 ... and remove the github markdown syntax so that it renders better on
5224 the web site. Also, don't use back-ticks inlined to allow the CSS to
5225 highlight source code better.
5226
5227- [Rikard Falkeborn brought this change]
5228
5229 examples: Fix format specifiers
5230
5231 Closes #2561
5232
5233- [Rikard Falkeborn brought this change]
5234
5235 tool: Fix format specifiers
5236
5237- [Rikard Falkeborn brought this change]
5238
5239 ntlm: Fix format specifiers
5240
5241- [Rikard Falkeborn brought this change]
5242
5243 tests: Fix format specifiers
5244
5245- [Rikard Falkeborn brought this change]
5246
5247 lib: Fix format specifiers
5248
5249- contributors.sh: use "on github", not at
5250
5251- http2: getsock fix for uploads
5252
5253 When there's an upload in progress, make sure to wait for the socket to
5254 become writable.
5255
5256 Detected-by: steini2000 on github
5257 Bug: #2520
5258 Closes #2567
5259
5260- pingpong: fix response cache memcpy overflow
5261
5262 Response data for a handle with a large buffer might be cached and then
5263 used with the "closure" handle when it has a smaller buffer and then the
5264 larger cache will be copied and overflow the new smaller heap based
5265 buffer.
5266
5267 Reported-by: Dario Weisser
5268 CVE: CVE-2018-1000300
5269 Bug: https://curl.haxx.se/docs/adv_2018-82c2.html
5270
5271- http: restore buffer pointer when bad response-line is parsed
5272
5273 ... leaving the k->str could lead to buffer over-reads later on.
5274
5275 CVE: CVE-2018-1000301
5276 Assisted-by: Max Dymond
5277
5278 Detected by OSS-Fuzz.
5279 Bug: https://curl.haxx.se/docs/adv_2018-b138.html
5280 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105
5281
5282Patrick Monnerat (13 May 2018)
5283- cookies: do not take cookie name as a parameter
5284
5285 RFC 6265 section 4.2.1 does not set restrictions on cookie names.
5286 This is a follow-up to commit 7f7fcd0.
5287 Also explicitly check proper syntax of cookie name/value pair.
5288
5289 New test 1155 checks that cookie names are not reserved words.
5290
5291 Reported-By: anshnd at github
5292 Fixes #2564
5293 Closes #2566
5294
5295Daniel Stenberg (12 May 2018)
5296- smb: reject negative file sizes
5297
5298 Assisted-by: Max Dymond
5299
5300 Detected by OSS-Fuzz
5301 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8245
5302
5303- setup_transfer: deal with both sockets being -1
5304
5305 Detected by Coverity; CID 1435559. Follow-up to f8d608f38d00. It would
5306 index the array with -1 if neither index was a socket.
5307
5308- travis: add build using NSS
5309
5310 Closes #2558
5311
5312- [Sunny Purushe brought this change]
5313
5314 openssl: change FILE ops to BIO ops
5315
5316 To make builds with VS2015 work. Recent changes in VS2015 _IOB_ENTRIES
5317 handling is causing problems. This fix changes the OpenSSL backend code
5318 to use BIO functions instead of FILE I/O functions to circumvent those
5319 problems.
5320
5321 Closes #2512
5322
5323- travis: add a build using WolfSSL
5324
5325 Assisted-by: Dan Fandrich
5326
5327 Closes #2528
5328
5329- RELEASE-NOTES: typo
5330
5331- RELEASE-NOTES: synced
5332
5333- [Daniel Gustafsson brought this change]
5334
5335 URLs: fix one more http url
5336
5337 This file wasn't included in commit 4af40b3646d3b09 which updated all
5338 haxx.se http urls to https. The file was committed prior to that update,
5339 but may have been merged after it and hence didn't get updated.
5340
5341 Closes #2550
5342
5343- github/lock: auto-lock closed issues after 90 days of inactivity
5344
5345- vtls: fix missing commas
5346
5347 follow-up to e66cca046cef
5348
5349- vtls: use unified "supports" bitfield member in backends
5350
5351 ... instead of previous separate struct fields, to make it easier to
5352 extend and change individual backends without having to modify them all.
5353
5354 closes #2547
5355
5356- transfer: don't unset writesockfd on setup of multiplexed conns
5357
5358 Curl_setup_transfer() can be called to setup a new individual transfer
5359 over a multiplexed connection so it shouldn't unset writesockfd.
5360
5361 Bug: #2520
5362 Closes #2549
5363
5364- [Frank Gevaerts brought this change]
5365
5366 configure: put CURLDEBUG and DEBUGBUILD in lib/curl_config.h
5367
5368 They are removed from the compiler flags.
5369
5370 This ensures that make dependency tracking will force a rebuild whenever
5371 configure --enable-debug or --enable-curldebug changes.
5372
5373 Closes #2548
5374
5375- http: don't set the "rewind" flag when not uploading anything
5376
5377 It triggers an assert.
5378
5379 Detected by OSS-Fuzz
5380 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8144
5381 Closes #2546
5382
5383- travis: add an mbedtls build
5384
5385 Closes #2531
5386
5387- configure: only check for CA bundle for file-using SSL backends
5388
5389 When only building with SSL backends that don't use the CA bundle file
5390 (by default), skip the check.
5391
5392 Fixes #2543
5393 Fixes #2180
5394 Closes #2545
5395
5396- ssh-libssh.c: fix left shift compiler warning
5397
5398 ssh-libssh.c:2429:21: warning: result of '1 << 31' requires 33 bits to
5399 represent, but 'int' only has 32 bits [-Wshift-overflow=]
5400
5401 'len' will never be that big anyway so I converted the run-time check to
5402 a regular assert.
5403
5404- [Stephan Mühlstrasser brought this change]
5405
5406 URL: fix ASCII dependency in strcpy_url and strlen_url
5407
5408 Commit 3c630f9b0af097663a64e5c875c580aa9808a92b partially reverted the
5409 changes from commit dd7521bcc1b7a6fcb53c31f9bd1192fcc884bd56 because of
5410 the problem that strcpy_url() was modified unilaterally without also
5411 modifying strlen_url(). As a consequence strcpy_url() was again
5412 depending on ASCII encoding.
5413
5414 This change fixes strlen_url() and strcpy_url() in parallel to use a
5415 common host-encoding independent criterion for deciding whether an URL
5416 character must be %-escaped.
5417
5418 Closes #2535
5419
5420- [Denis Ollier brought this change]
5421
5422 docs: remove extraneous commas in man pages
5423
5424 Closes #2544
5425
5426- RELEASE-NOTES: synced
5427
5428- Revert "TODO: remove configure --disable-pthreads"
5429
5430 This reverts commit d5d683a97f9765bddfd964fe32e137aa6e703ed3.
5431
5432 --disable-pthreads can be used to disable pthreads and get the threaded
5433 resolver to use the windows threading when building with mingw.
5434
5435- vtls: don't define MD5_DIGEST_LENGTH for wolfssl
5436
5437 ... as it defines it (too)
5438
5439- TODO: remove configure --disable-pthreads
5440
5441Jay Satiro (2 May 2018)
5442- [David Garske brought this change]
5443
5444 wolfssl: Fix non-blocking connect
5445
5446 Closes https://github.com/curl/curl/pull/2542
5447
5448Daniel Stenberg (30 Apr 2018)
5449- CURLOPT_URL.3: add ENCODING section [ci skip]
5450
5451 Feedback-by: Michael Kilburn
5452
5453- KNOWN_BUGS: Client cert with Issuer DN differs between backends
5454
5455 Closes #1411
5456
5457- KNOWN_BUGS: Passive transfer tries only one IP address
5458
5459 Closes #1508
5460
5461- KNOWN_BUGS: --upload-file . hang if delay in STDIN
5462
5463 Closes #2051
5464
5465- KNOWN_BUGS: Connection information when using TCP Fast Open
5466
5467 Closes #1332
5468
5469- travis: enable libssh2 on both macos and Linux
5470
5471 It seems to not be detected by default anymore (which is a bug I
5472 believe)
5473
5474 Closes #2541
5475
5476- TODO: Support the clienthello extension
5477
5478 Closes #2299
5479
5480- TODO: CLOEXEC
5481
5482 Closes #2252
5483
5484- tests: provide 'manual' as a feature to optionally require
5485
5486 ... and make test 1026 rely on that feature so that --disable-manual
5487 builds don't cause test failures.
5488
5489 Reported-by: Max Dymond and Anders Roxell
5490 Fixes #2533
5491 Closes #2540
5492
5493- CURLINFO_PROTOCOL.3: mention the existing defined names
5494
5495Jay Satiro (27 Apr 2018)
5496- [Daniel Gustafsson brought this change]
5497
5498 cookies: remove unused macro
5499
5500 Commit 2bc230de63 made the macro MAX_COOKIE_LINE_TXT become unused,
5501 so remove as it's not part of the published API.
5502
5503 Closes https://github.com/curl/curl/pull/2537
5504
5505Daniel Stenberg (27 Apr 2018)
5506- [Daniel Gustafsson brought this change]
5507
5508 checksrc: force indentation of lines after an else
5509
5510 This extends the INDENTATION case to also handle 'else' statements
5511 and require proper indentation on the following line. Also fixes the
5512 offending cases found in the codebase.
5513
5514 Closes #2532
5515
5516- http2: fix null pointer dereference in http2_connisdead
5517
5518 This function can get called on a connection that isn't setup enough to
5519 have the 'recv_underlying' function pointer initialized so it would try
5520 to call the NULL pointer.
5521
5522 Reported-by: Dario Weisser
5523
5524 Follow-up to db1b2c7fe9b093f8 (never shipped in a release)
5525 Closes #2536
5526
5527- http2: get rid of another strstr()
5528
5529 Follow-up to 1514c44655e12e: replace another strstr() call done on a
5530 buffer that might not be zero terminated - with a memchr() call, even if
5531 we know the substring will be found.
5532
5533 Assisted-by: Max Dymond
5534
5535 Detected by OSS-Fuzz
5536 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8021
5537
5538 Closes #2534
5539
5540- cyassl: adapt to libraries without TLS 1.0 support built-in
5541
5542 WolfSSL doesn't enable it by default anymore
5543
5544- configure: provide --with-wolfssl as an alias for --with-cyassl
5545
5546- RELEASE-NOTES: synced
5547
5548- [Daniel Gustafsson brought this change]
5549
5550 os400.c: fix ASSIGNWITHINCONDITION checksrc warnings
5551
5552 All occurrences of assignment within conditional expression in
5553 os400sys.c rewritten into two steps: first assignment and then the check
5554 on the success of the assignment. Also adjust related incorrect brace
5555 positions to match project indentation style.
5556
5557 This was spurred by seeing "if((inp = input_token))", but while in there
5558 all warnings were fixed.
5559
5560 There should be no functional change from these changes.
5561
5562 Closes #2525
5563
5564- [Daniel Gustafsson brought this change]
5565
5566 cookies: ensure that we have cookies before writing jar
5567
5568 The jar should be written iff there are cookies, so ensure that we still
5569 have cookies after expiration to avoid creating an empty file.
5570
5571 Closes #2529
5572
5573- strcpy_url: only %-encode values >= 0x80
5574
5575 OSS-Fuzz detected
5576
5577 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8000
5578
5579 Broke in dd7521bcc1b7
5580
5581- mime: avoid NULL pointer dereference risk
5582
5583 Coverity detected, CID 1435120
5584
5585 Closes #2527
5586
5587- [Stephan Mühlstrasser brought this change]
5588
5589 ctype: restore character classification for non-ASCII platforms
5590
5591 With commit 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2 curl-speficic
5592 character classification macros and functions were introduced in
5593 curl_ctype.[ch] to avoid dependencies on the locale. This broke curl on
5594 non-ASCII, e.g. EBCDIC platforms. This change restores the previous set
5595 of character classification macros when CURL_DOES_CONVERSIONS is
5596 defined.
5597
5598 Closes #2494
5599
5600- ftplistparser: keep state between invokes
5601
5602 Fixes FTP wildcard parsing when done over a number of read buffers.
5603
5604 Regression from f786d1f14
5605
5606 Reported-by: wncboy on github
5607 Fixes #2445
5608 Closes #2526
5609
5610- examples/http2-upload: expand buffer to avoid silly warning
5611
5612 http2-upload.c:135:44: error: ‘%02d’ directive output may be truncated
5613 writing between 2 and 11 bytes into a region of size between 8 and 17
5614
5615- examples/sftpuploadresume: typecast fseek argument to long
5616
5617 /docs/examples/sftpuploadresume.c:102:12: warning: conversion to 'long
5618 int' from 'curl_off_t {aka long long int}' may alter its value
5619
5620- Revert "ftplistparser: keep state between invokes"
5621
5622 This reverts commit abbc8457d85aca74b7cfda1d394b0844932b2934.
5623
5624 Caused fuzzer problems on travis not seen when this was a PR!
5625
5626- Curl_memchr: zero length input can't match
5627
5628 Avoids undefined behavior.
5629
5630 Reported-by: Geeknik Labs
5631
5632- ftplistparser: keep state between invokes
5633
5634 Fixes FTP wildcard parsing when doing over a number of read buffers.
5635
5636 Regression from f786d1f14
5637
5638 Reported-by: wncboy on github
5639 Fixes #2445
5640 Closes #2519
5641
5642- ftplistparser: renamed some members and variables
5643
5644 ... to make them better spell out what they're for.
5645
5646- RELEASE-NOTES: synced
5647
5648- [Christian Schmitz brought this change]
5649
5650 curl_global_sslset: always provide available backends
5651
5652 Closes #2499
5653
5654- http2: convert an assert to run-time check
5655
5656 Fuzzing has proven we can reach code in on_frame_recv with status_code
5657 not having been set, so let's detect that in run-time (instead of with
5658 assert) and error error accordingly.
5659
5660 (This should no longer happen with the latest nghttp2)
5661
5662 Detected by OSS-Fuzz
5663 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7903
5664 Closes #2514
5665
5666- curl.1: clarify that options and URLs can be mixed
5667
5668 Fixes #2515
5669 Closes #2517
5670
5671Jay Satiro (23 Apr 2018)
5672- [Archangel_SDY brought this change]
5673
5674 CURLOPT_SSLCERT.3: improve WinSSL-specific usage info
5675
5676 Ref: https://github.com/curl/curl/pull/2376#issuecomment-381858780
5677
5678 Closes https://github.com/curl/curl/pull/2504
5679
5680- [Archangel_SDY brought this change]
5681
5682 schannel: fix build error on targets <= XP
5683
5684 - Use CRYPT_STRING_HEX instead of CRYPT_STRING_HEXRAW since XP doesn't
5685 support the latter.
5686
5687 Ref: https://github.com/curl/curl/pull/2376#issuecomment-382153668
5688
5689 Closes https://github.com/curl/curl/pull/2504
5690
5691Daniel Stenberg (23 Apr 2018)
5692- Revert "ftplistparser: keep state between invokes"
5693
5694 This reverts commit 8fb78f9ddc6d858d630600059b8ad84a80892fd9.
5695
5696 Unfortunately this fix introduces memory leaks I've not been able to fix
5697 in several days. Reverting this for now to get the leaks fixed.
5698
5699Jay Satiro (21 Apr 2018)
5700- tool_help: clarify --max-time unit of time is seconds
5701
5702 Before:
5703 -m, --max-time <time> Maximum time allowed for the transfer
5704
5705 After:
5706 -m, --max-time <seconds> Maximum time allowed for the transfer
5707
5708Daniel Stenberg (20 Apr 2018)
5709- http2: handle GOAWAY properly
5710
5711 When receiving REFUSED_STREAM, mark the connection for close and retry
5712 streams accordingly on another/fresh connection.
5713
5714 Reported-by: Terry Wu
5715 Fixes #2416
5716 Fixes #1618
5717 Closes #2510
5718
5719- http2: clear the "drain counter" when a stream is closed
5720
5721 This fixes the notorious "httpc->drain_total >= data->state.drain"
5722 assert.
5723
5724 Reported-by: Anders Bakken
5725
5726 Fixes #1680
5727 Closes #2509
5728
5729- http2: avoid strstr() on data not zero terminated
5730
5731 It's not strictly clear if the API contract allows us to call strstr()
5732 on a string that isn't zero terminated even when we know it will find
5733 the substring, and clang's ASAN check dislikes us for it.
5734
5735 Also added a check of the return code in case it fails, even if I can't
5736 think of a situation how that can trigger.
5737
5738 Detected by OSS-Fuzz
5739 Closes #2513
5740 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7760
5741
5742- [Stephan Mühlstrasser brought this change]
5743
5744 openssl: fix subjectAltName check on non-ASCII platforms
5745
5746 Curl_cert_hostcheck operates with the host character set, therefore the
5747 ASCII subjectAltName string retrieved with OpenSSL must be converted to
5748 the host encoding before comparison.
5749
5750 Closes #2493
5751
5752Jay Satiro (20 Apr 2018)
5753- openssl: Add support for OpenSSL 1.1.1 verbose-mode trace messages
5754
5755 - Support handling verbose-mode trace messages of type
5756 SSL3_RT_INNER_CONTENT_TYPE, SSL3_MT_ENCRYPTED_EXTENSIONS,
5757 SSL3_MT_END_OF_EARLY_DATA, SSL3_MT_KEY_UPDATE, SSL3_MT_NEXT_PROTO,
5758 SSL3_MT_MESSAGE_HASH
5759
5760 Reported-by: iz8mbw@users.noreply.github.com
5761
5762 Fixes https://github.com/curl/curl/issues/2403
5763
5764Daniel Stenberg (19 Apr 2018)
5765- ftplistparser: keep state between invokes
5766
5767 Regression from f786d1f14
5768
5769 Reported-by: wncboy on github
5770 Fixes #2445
5771 Closes #2508
5772
5773- detect_proxy: only show proxy use if it had contents
5774
5775- http2: handle on_begin_headers() called more than once
5776
5777 This triggered an assert if called more than once in debug mode (and a
5778 memory leak if not debug build). With the right sequence of HTTP/2
5779 headers incoming it can happen.
5780
5781 Detected by OSS-Fuzz
5782
5783 Closes #2507
5784 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7764
5785
5786Jay Satiro (18 Apr 2018)
5787- [Dan McNulty brought this change]
5788
5789 schannel: add support for CURLOPT_CAINFO
5790
5791 - Move verify_certificate functionality in schannel.c into a new
5792 file called schannel_verify.c. Additionally, some structure defintions
5793 from schannel.c have been moved to schannel.h to allow them to be
5794 used in schannel_verify.c.
5795
5796 - Make verify_certificate functionality for Schannel available on
5797 all versions of Windows instead of just Windows CE. verify_certificate
5798 will be invoked on Windows CE or when the user specifies
5799 CURLOPT_CAINFO and CURLOPT_SSL_VERIFYPEER.
5800
5801 - In verify_certificate, create a custom certificate chain engine that
5802 exclusively trusts the certificate store backed by the CURLOPT_CAINFO
5803 file.
5804
5805 - doc updates of --cacert/CAINFO support for schannel
5806
5807 - Use CERT_NAME_SEARCH_ALL_NAMES_FLAG when invoking CertGetNameString
5808 when available. This implements a TODO in schannel.c to improve
5809 handling of multiple SANs in a certificate. In particular, all SANs
5810 will now be searched instead of just the first name.
5811
5812 - Update tool_operate.c to not search for the curl-ca-bundle.crt file
5813 when using Schannel to maintain backward compatibility. Previously,
5814 any curl-ca-bundle.crt file found in that search would have been
5815 ignored by Schannel. But, with CAINFO support, the file found by
5816 that search would have been used as the certificate store and
5817 could cause issues for any users that have curl-ca-bundle.crt in
5818 the search path.
5819
5820 - Update url.c to not set the build time CURL_CA_BUNDLE if the selected
5821 SSL backend is Schannel. We allow setting CA location for schannel
5822 only when explicitly specified by the user via CURLOPT_CAINFO /
5823 --cacert.
5824
5825 - Add new test cases 3000 and 3001. These test cases check that the first
5826 and last SAN, respectively, matches the connection hostname. New test
5827 certificates have been added for these cases. For 3000, the certificate
5828 prefix is Server-localhost-firstSAN and for 3001, the certificate
5829 prefix is Server-localhost-secondSAN.
5830
5831 - Remove TODO 15.2 (Add support for custom server certificate
5832 validation), this commit addresses it.
5833
5834 Closes https://github.com/curl/curl/pull/1325
5835
5836- schannel: fix warning
5837
5838 - Fix warning 'integer from pointer without a cast' on 3rd arg in
5839 CertOpenStore. The arg type HCRYPTPROV may be a pointer or integer
5840 type of the same size.
5841
5842 Follow-up to e35b025.
5843
5844 Caught by Marc's CI builds.
5845
5846- [Jakub Wilk brought this change]
5847
5848 docs: fix typos
5849
5850 Closes https://github.com/curl/curl/pull/2503
5851
5852Daniel Stenberg (17 Apr 2018)
5853- RELEASE-NOTES: synced
5854
5855Jay Satiro (17 Apr 2018)
5856- [Kees Dekker brought this change]
5857
5858 winbuild: Support custom devel paths for each dependency
5859
5860 - Support custom devel paths for c-ares, mbedTLS, nghttp2, libSSH2,
5861 OpenSSL and zlib. Respectively: CARES_PATH, MBEDTLS_PATH,
5862 NGHTTP2_PATH, SSH2_PATH, SSL_PATH and ZLIB_PATH.
5863
5864 - Use lib.exe for making the static library instead of link.exe /lib.
5865 The latter is undocumented and could cause problems as noted in the
5866 comments.
5867
5868 - Remove a dangling URL that no longer worked. (I was not able to find
5869 the IDN download at MSDN/microsoft.com, so it seems to be removed.)
5870
5871 - Remove custom override for release-ssh2-ssl-dll-zlib configuration.
5872 Nobody knows why it was there and as far as we can see is unnecessary.
5873
5874 Closes https://github.com/curl/curl/pull/2474
5875
5876Daniel Stenberg (17 Apr 2018)
5877- [Jess brought this change]
5878
5879 README.md: add backers and sponsors
5880
5881 Closes #2484
5882
5883- [Archangel_SDY brought this change]
5884
5885 schannel: add client certificate authentication
5886
5887 Users can now specify a client certificate in system certificates store
5888 explicitly using expression like `--cert "CurrentUser\MY\<thumbprint>"`
5889
5890 Closes #2376
5891
5892Marcel Raad (16 Apr 2018)
5893- [toughengineer brought this change]
5894
5895 ntlm_sspi: fix authentication using Credential Manager
5896
5897 If you pass empty user/pass asking curl to use Windows Credential
5898 Storage (as stated in the docs) and it has valid credentials for the
5899 domain, e.g.
5900 curl -v -u : --ntlm example.com
5901 currently authentication fails.
5902 This change fixes it by providing proper SPN string to the SSPI API
5903 calls.
5904
5905 Fixes https://github.com/curl/curl/issues/1622
5906 Closes https://github.com/curl/curl/pull/1660
5907
5908Daniel Stenberg (16 Apr 2018)
5909- configure: keep LD_LIBRARY_PATH changes local
5910
5911 ... only set it when we actually have to run tests to reduce its impact
5912 on for example build commands etc.
5913
5914 Fixes #2490
5915 Closes #2492
5916
5917 Reported-by: Dmitry Mikhirev
5918
5919Marcel Raad (16 Apr 2018)
5920- urldata: make service names unconditional
5921
5922 The ifdefs have become quite long. Also, the condition for the
5923 definition of CURLOPT_SERVICE_NAME and for setting it from
5924 CURLOPT_SERVICE_NAME have diverged. We will soon also need the two
5925 options for NTLM, at least when using SSPI, for
5926 https://github.com/curl/curl/pull/1660.
5927 Just make the definitions unconditional to make that easier.
5928
5929 Closes https://github.com/curl/curl/pull/2479
5930
5931Daniel Stenberg (16 Apr 2018)
5932- test1148: tolerate progress updates better
5933
5934 Fixes #2446
5935 Closes #2488
5936
5937- [Christian Schmitz brought this change]
5938
5939 ssh: show libSSH2 error code when closing fails
5940
5941 Closes #2500
5942
5943Jay Satiro (15 Apr 2018)
5944- [Daniel Gustafsson brought this change]
5945
5946 vauth: Fix typo
5947
5948 Address various spellings of "credentials".
5949
5950 Closes https://github.com/curl/curl/pull/2496
5951
5952- [Dagobert Michelsen brought this change]
5953
5954 system.h: Add sparcv8plus to oracle/sunpro 32-bit detection
5955
5956 With specific compiler options selecting the arch like -xarch=sparc on
5957 newer compilers like Oracle Studio 12.4 there is no definition of
5958 __sparcv8 but __sparcv8plus which means the V9 ISA, but limited to the
5959 32ÎíÎñbit subset defined by the V8plus ISA specification, without the
5960 Visual Instruction Set (VIS), and without other implementation-specific
5961 ISA extensions. So it should be the same as __sparcv8.
5962
5963 Closes https://github.com/curl/curl/pull/2491
5964
5965- [Daniel Gustafsson brought this change]
5966
5967 checksrc: Fix typo
5968
5969 Fix typo in "semicolon" spelling and remove stray tab character.
5970
5971 Closes https://github.com/curl/curl/pull/2498
5972
5973- [Daniel Gustafsson brought this change]
5974
5975 all: Refactor malloc+memset to use calloc
5976
5977 When a zeroed out allocation is required, use calloc() rather than
5978 malloc() followed by an explicit memset(). The result will be the
5979 same, but using calloc() everywhere increases consistency in the
5980 codebase and avoids the risk of subtle bugs when code is injected
5981 between malloc and memset by accident.
5982
5983 Closes https://github.com/curl/curl/pull/2497
5984
5985Daniel Stenberg (12 Apr 2018)
5986- duphandle: make sure CURLOPT_RESOLVE is duplicated fine too
5987
5988 Verified in test 1502 now
5989
5990 Fixes #2485
5991 Closes #2486
5992 Reported-by: Ernst Sjöstrand
5993
5994- mailmap: add a monnerat fixup [ci skip]
5995
5996- proxy: show getenv proxy use in verbose output
5997
5998 ... to aid debugging etc as it sometimes isn't immediately obvious why
5999 curl uses or doesn't use a proxy.
6000
6001 Inspired by #2477
6002
6003 Closes #2480
6004
6005- travis: build libpsl and make builds use it
6006
6007 closes #2471
6008
6009- travis: bump to clang 6 and gcc 7
6010
6011 Extra-eye-on-this-by: Marcel Raad
6012
6013 Closes #2478
6014
6015Marcel Raad (10 Apr 2018)
6016- travis: use trusty for coverage build
6017
6018 This works now and precise is in the process of being decommissioned.
6019
6020 Closes https://github.com/curl/curl/pull/2476
6021
6022- lib: silence null-dereference warnings
6023
6024 In debug mode, MingGW-w64's GCC 7.3 issues null-dereference warnings
6025 when dereferencing pointers after DEBUGASSERT-ing that they are not
6026 NULL.
6027 Fix this by removing the DEBUGASSERTs.
6028
6029 Suggested-by: Daniel Stenberg
6030 Ref: https://github.com/curl/curl/pull/2463
6031
6032- [Kees Dekker brought this change]
6033
6034 winbuild: fix URL
6035
6036 Follow up on https://github.com/curl/curl/pull/2472.
6037 Now using en-us instead of nl-nl as language code in the URL.
6038
6039 Closes https://github.com/curl/curl/pull/2475
6040
6041Daniel Stenberg (9 Apr 2018)
6042- [Kees Dekker brought this change]
6043
6044 winbuild: updated the documentation
6045
6046 The setenv command no longer exists and visual studio build prompts got
6047 changed. Used Visual Studio 2015/2017 as reference.
6048
6049 Closes #2472
6050
6051- test1136: fix cookie order after commit c990eadd1277
6052
6053- build: cleanup to fix clang warnings/errors
6054
6055 unit1309 and vtls/gtls: error: arithmetic on a null pointer treated as a
6056 cast from integer to pointer is a GNU extension
6057
6058 Reported-by: Rikard Falkeborn
6059
6060 Fixes #2466
6061 Closes #2468
6062
6063Jay Satiro (7 Apr 2018)
6064- examples/sftpuploadresmue: Fix Windows large file seek
6065
6066 - Use _fseeki64 instead of fseek (long) to seek curl_off_t in Windows.
6067
6068 - Use CURL_FORMAT_CURL_OFF_T specifier instead of %ld to print
6069 curl_off_t.
6070
6071 Caught by Marc's CI builds.
6072
6073Daniel Stenberg (7 Apr 2018)
6074- curl_setup: provide a CURL_SA_FAMILY_T type if none exists
6075
6076 ... and use this type instead of 'sa_family_t' in the code since several
6077 platforms don't have it.
6078
6079 Closes #2463
6080
6081- [Eric Gallager brought this change]
6082
6083 build: add picky compiler warning flags for gcc 6 and 7
6084
6085- configure: detect sa_family_t
6086
6087Jay Satiro (7 Apr 2018)
6088- [Stefan Agner brought this change]
6089
6090 tool_operate: Fix retry on FTP 4xx to ignore other protocols
6091
6092 Only treat response code as FTP response codes in case the
6093 protocol type is FTP.
6094
6095 This fixes an issue where an HTTP download was treated as FTP
6096 in case libcurl returned with 33. This happens when the
6097 download has already finished and the server responses 416:
6098 HTTP/1.1 416 Requested Range Not Satisfiable
6099
6100 This should not be treated as an FTP error.
6101
6102 Fixes #2464
6103 Closes #2465
6104
6105Daniel Stenberg (6 Apr 2018)
6106- hash: calculate sizes with size_t instead of longs
6107
6108 ... since they return size_t anyway!
6109
6110 closes #2462
6111
6112- RELEASE-NOTES: synced
6113
6114- [Jay Satiro brought this change]
6115
6116 build-openssl.bat: Refer to VS2017 as VC14.1 instead of VC15
6117
6118 .. and do the same for build-wolfssl.bat.
6119
6120 Because MS calls it VC14.1.
6121
6122 Closes https://github.com/curl/curl/pull/2189
6123
6124- [Kees Dekker brought this change]
6125
6126 winbuild: make the clean target work without build-type
6127
6128 Due to the check in Makefile.vc and MakefileBuild.vc, no make call can
6129 be invoked unless a build-type was specified. However, a clean target
6130 only existed when a build type was specified. As a result, the clean
6131 target was unreachable. Made clean target unconditional.
6132
6133 Closes #2455
6134
6135- [patelvivekv1993 brought this change]
6136
6137 build-openssl.bat: allow custom paths for VS and perl
6138
6139 Fixes #2430
6140 Closes #2457
6141
6142- [Laurie Clark-Michalek brought this change]
6143
6144 FTP: allow PASV on IPv6 connections when a proxy is being used
6145
6146 In the situation of a client connecting to an FTP server using an IPv6
6147 tunnel proxy, the connection info will indicate that the connection is
6148 IPv6. However, because the server behing the proxy is IPv4, it is
6149 permissable to attempt PSV mode. In the case of the FTP server being
6150 IPv4 only, EPSV will always fail, and with the current logic curl will
6151 be unable to connect to the server, as the IPv6 fwdproxy causes curl to
6152 think that EPSV is impossible.
6153
6154 Closes #2432
6155
6156- [Jon DeVree brought this change]
6157
6158 file: restore old behavior for file:////foo/bar URLs
6159
6160 curl 7.57.0 and up interpret this according to Appendix E.3.2 of RFC
6161 8089 but then returns an error saying this is unimplemented. This is
6162 actually a regression in behavior on both Windows and Unix.
6163
6164 Before curl 7.57.0 this URL was treated as a path of "//foo/bar" and
6165 then passed to the relevant OS API. This means that the behavior of this
6166 case is actually OS dependent.
6167
6168 The Unix path resolution rules say that the OS must handle swallowing
6169 the extra "/" and so this path is the same as "/foo/bar"
6170
6171 The Windows path resolution rules say that this is a UNC path and
6172 automatically handles the SMB access for the program. So curl on Windows
6173 was already doing Appendix E.3.2 without any special code in curl.
6174
6175 Regression
6176
6177 Closes #2438
6178
6179- [Gaurav Malhotra brought this change]
6180
6181 Revert "openssl: Don't add verify locations when verifypeer==0"
6182
6183 This reverts commit dc85437736e1fc90e689bb1f6c51c8f1aa9430eb.
6184
6185 libcurl (with the OpenSSL backend) performs server certificate verification
6186 even if verifypeer == 0 and the verification result is available using
6187 CURLINFO_SSL_VERIFYRESULT. The commit that is being reverted caused the
6188 CURLINFO_SSL_VERIFYRESULT to not have useful information for the
6189 verifypeer == 0 use case (it would always have
6190 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY).
6191
6192 Closes #2451
6193
6194- [Wyatt O'Day brought this change]
6195
6196 tls: fix mbedTLS 2.7.0 build + handle sha256 failures
6197
6198 (mbedtls 2.70 compiled with MBEDTLS_DEPRECATED_REMOVED)
6199
6200 Closes #2453
6201
6202- [Lauri Kasanen brought this change]
6203
6204 cookie: case-insensitive hashing for the domains
6205
6206 closes #2458
6207
6208Patrick Monnerat (4 Apr 2018)
6209- cookie: fix and optimize 2nd top level domain name extraction
6210
6211 This fixes a segfault occurring when a name of the (invalid) form "domain..tld"
6212 is processed.
6213
6214 test46 updated to cover this case.
6215
6216 Follow-up to commit c990ead.
6217
6218 Ref: https://github.com/curl/curl/pull/2440
6219
6220Daniel Stenberg (4 Apr 2018)
6221- openssl: provide defines for argument typecasts to build warning-free
6222
6223 ... as OpenSSL >= 1.1.0 and libressl >= 2.7.0 use different argument types.
6224
6225- [Bernard Spil brought this change]
6226
6227 openssl: fix build with LibreSSL 2.7
6228
6229 - LibreSSL 2.7 implements (most of) OpenSSL 1.1 API
6230
6231 Fixes #2319
6232 Closes #2447
6233 Closes #2448
6234
6235 Signed-off-by: Bernard Spil <brnrd@FreeBSD.org>
6236
6237- [Lauri Kasanen brought this change]
6238
6239 cookie: store cookies per top-level-domain-specific hash table
6240
6241 This makes libcurl handle thousands of cookies much better and speedier.
6242
6243 Closes #2440
6244
6245- [Lauri Kasanen brought this change]
6246
6247 cookies: when reading from a file, only remove_expired once
6248
6249 This drops the cookie load time for 8k cookies from 178ms to 15ms.
6250
6251 Closes #2441
6252
6253- test1148: set a fixed locale for the test
6254
6255 ...as otherwise it might use a different decimal sign.
6256
6257 Bug: #2436
6258 Reported-by: Oumph on github
6259
6260Jay Satiro (31 Mar 2018)
6261- docs: fix CURLINFO_*_T examples use of CURL_FORMAT_CURL_OFF_T
6262
6263 - Put a percent sign before each CURL_FORMAT_CURL_OFF_T in printf.
6264
6265 For example "%" CURL_FORMAT_CURL_OFF_T becomes %lld or similar.
6266
6267 Bug: https://curl.haxx.se/mail/lib-2018-03/0140.html
6268 Reported-by: David L.
6269
6270Sergei Nikulov (27 Mar 2018)
6271- [Michał Janiszewski brought this change]
6272
6273 cmake: Add advapi32 as explicit link library for win32
6274
6275 ARM targets need advapi32 explicitly.
6276
6277 Closes #2363
6278
6279Daniel Stenberg (27 Mar 2018)
6280- TODO: connection cache sharing is now supporte
6281
6282Jay Satiro (26 Mar 2018)
6283- travis: enable apt retry on fail
6284
6285 This is a workaround for an unsolved travis issue that is causing CI
6286 instances to sporadically fail due to 'unable to connect' issues during
6287 apt stage.
6288
6289 Ref: https://github.com/travis-ci/travis-ci/issues/8507
6290 Ref: https://github.com/travis-ci/travis-ci/issues/9112#issuecomment-376305909
6291
6292Michael Kaufmann (26 Mar 2018)
6293- runtests.pl: fix warning 'use of uninitialized value'
6294
6295 follow-up to a9a7b60
6296
6297 Closes #2428
6298
6299Daniel Stenberg (24 Mar 2018)
6300- gitignore: ignore more generated files
6301
6302- threaded resolver: track resolver time and set suitable timeout values
6303
6304 In order to make curl_multi_timeout() return suitable "sleep" times even
6305 when there's no socket to wait for while the name is being resolved in a
6306 helper thread.
6307
6308 It will increases the timeouts as time passes.
6309
6310 Closes #2419
6311
6312- [Howard Chu brought this change]
6313
6314 openldap: fix for NULL return from ldap_get_attribute_ber()
6315
6316 Closes #2399
6317
6318GitHub (22 Mar 2018)
6319- [Sergei Nikulov brought this change]
6320
6321 travis-ci: enable -Werror for CMake builds (#2418)
6322
6323- [Sergei Nikulov brought this change]
6324
6325 cmake: avoid warn-as-error during config checks (#2411)
6326
6327 - Move the CURL_WERROR option processing after the configuration checks
6328 to avoid failures in case of warnings during the configuration checks.
6329
6330 This is a partial fix for #2358
6331
6332- [Sergei Nikulov brought this change]
6333
6334 timeval: remove compilation warning by casting (#2417)
6335
6336 This is fixes #2358
6337
6338Daniel Stenberg (22 Mar 2018)
6339- http2: read pending frames (including GOAWAY) in connection-check
6340
6341 If a connection has received a GOAWAY frame while not being used, the
6342 function now reads frames off the connection before trying to reuse it
6343 to avoid reusing connections the server has told us not to use.
6344
6345 Reported-by: Alex Baines
6346 Fixes #1967
6347 Closes #2402
6348
6349- [Bas van Schaik brought this change]
6350
6351 CI: add lgtm.yml for tweaking lgtm.com analysis
6352
6353 Closes #2414
6354
6355- CURLINFO_SSL_VERIFYRESULT.3: fix the example, add some text
6356
6357 Reported-by: Michal Trybus
6358
6359 Fixes #2400
6360
6361- TODO: expand ~/ in config files
6362
6363 Closes #2317
6364
6365- cookie.d: mention that "-" as filename means stdin
6366
6367 Reported-by: Dongliang Mu
6368 Fixes #2410
6369
6370- CURLINFO_COOKIELIST.3: made the example not leak memory
6371
6372 Reported-by: Muz Dima
6373
6374- vauth/cleartext: fix integer overflow check
6375
6376 Make the integer overflow check not rely on the undefined behavior that
6377 a size_t wraps around on overflow.
6378
6379 Detected by lgtm.com
6380 Closes #2408
6381
6382- lib/curl_path.h: add #ifdef header guard
6383
6384 Detected by lgtm.com
6385
6386- vauth/ntlm.h: fix the #ifdef header guard
6387
6388 Detected by lgtm.com
6389
6390Jay Satiro (20 Mar 2018)
6391- examples/hiperfifo: checksrc compliance
6392
6393Daniel Stenberg (19 Mar 2018)
6394- [Nikos Tsipinakis brought this change]
6395
6396 parsedate: support UT timezone
6397
6398 RFC822 section 5.2 mentions Universal Time, 'UT', to be synonymous with
6399 GMT.
6400
6401 Closes #2401
6402
6403- RELEASE-NOTES: synced
6404
6405- [Don brought this change]
6406
6407 cmake: add support for brotli
6408
6409 Currently CMake cannot detect Brotli support. This adds detection of the
6410 libraries and associated header files. It also adds this to the
6411 generated config.
6412
6413 Closes #2392
6414
6415- [Chris Araman brought this change]
6416
6417 darwinssl: fix iOS build
6418
6419Patrick Monnerat (18 Mar 2018)
6420- ILE/RPG binding: Add CURLOPT_HAPROXYPROTOCOL/Fix CURLOPT_DNS_SHUFFLE_ADDRESSES
6421
6422Daniel Stenberg (17 Mar 2018)
6423- [Rick Deist brought this change]
6424
6425 resolve: add CURLOPT_DNS_SHUFFLE_ADDRESSES
6426
6427 This patch adds CURLOPT_DNS_SHUFFLE_ADDRESSES to explicitly request
6428 shuffling of IP addresses returned for a hostname when there is more
6429 than one. This is useful when the application knows that a round robin
6430 approach is appropriate and is willing to accept the consequences of
6431 potentially discarding some preference order returned by the system's
6432 implementation.
6433
6434 Closes #1694
6435
6436- add_handle/easy_perform: clear errorbuffer on start if set
6437
6438 To offer applications a more defined behavior, we clear the buffer as
6439 early as possible.
6440
6441 Assisted-by: Jay Satiro
6442
6443 Fixes #2190
6444 Closes #2377
6445
6446- [Lawrence Matthews brought this change]
6447
6448 CURLOPT_HAPROXYPROTOCOL: support the HAProxy PROXY protocol
6449
6450 Add --haproxy-protocol for the command line tool
6451
6452 Closes #2162
6453
6454- curl_version_info.3: fix ssl_version description
6455
6456 Reported-by: Vincas Razma
6457 Fixes #2364
6458
6459- multi: improved pending transfers handling => improved performance
6460
6461 When a transfer is requested to get done and it is put in the pending
6462 queue when limited by number of connections, total or per-host, libcurl
6463 would previously very aggressively retry *ALL* pending transfers to get
6464 them transferring. That was very time consuming.
6465
6466 By reducing the aggressiveness in how pending are being retried, we
6467 waste MUCH less time on putting transfers back into pending again.
6468
6469 Some test cases got a factor 30(!) speed improvement with this change.
6470
6471 Reported-by: Cyril B
6472 Fixes #2369
6473 Closes #2383
6474
6475- pause: when changing pause state, update socket state
6476
6477 Especially unpausing a transfer might have to move the socket back to the
6478 "currently used sockets" hash to get monitored. Otherwise it would never get
6479 any more data and get stuck. Easily triggered with pausing using the
6480 multi_socket API.
6481
6482 Reported-by: Philip Prindeville
6483 Bug: https://curl.haxx.se/mail/lib-2018-03/0048.html
6484 Fixes #2393
6485 Closes #2391
6486
6487- [Philip Prindeville brought this change]
6488
6489 examples/hiperfifo.c: improved
6490
6491 * use member struct event’s instead of pointers to alloc’d struct
6492 events
6493
6494 * simplify the cases for the mcode_or_die() function via macros;
6495
6496 * make multi_timer_cb() actually do what the block comment says it
6497 should;
6498
6499 * accept a “stop” command on the FIFO to shut down the service;
6500
6501 * use cleaner notation for unused variables than the (void) hack;
6502
6503 * allow following redirections (304’s);
6504
6505- rate-limit: use three second window to better handle high speeds
6506
6507 Due to very frequent updates of the rate limit "window", it could
6508 attempt to rate limit within the same milliseconds and that then made
6509 the calculations wrong, leading to it not behaving correctly on very
6510 fast transfers.
6511
6512 This new logic updates the rate limit "window" to be no shorter than the
6513 last three seconds and only updating the timestamps for this when
6514 switching between the states TOOFAST/PERFORM.
6515
6516 Reported-by: 刘佩东
6517 Fixes #2386
6518 Closes #2388
6519
6520- [luz.paz brought this change]
6521
6522 cleanup: misc typos in strings and comments
6523
6524 Found via `codespell`
6525
6526 Closes #2389
6527
6528- RELEASE-NOTES: toward 7.60.0
6529
6530- [Kobi Gurkan brought this change]
6531
6532 http2: fixes typo
6533
6534 Closes #2387
6535
6536- user-agent.d:: mention --proxy-header as well
6537
6538 Bug: https://github.com/curl/curl/issues/2381
6539
6540- transfer: make HTTP without headers count correct body size
6541
6542 This is what "HTTP/0.9" basically looks like.
6543
6544 Reported on IRC
6545
6546 Closes #2382
6547
6548- test1208: marked flaky
6549
6550 It fails somewhere between every 3rd to 10th travis-CI run
6551
6552- SECURITY-PROCESS: mention how we write/add advisories
6553
6554- [dasimx brought this change]
6555
6556 FTP: fix typo in recursive callback detection for seeking
6557
6558 Fixes #2380
6559
Elliott Hughescac39802018-04-27 16:19:43 -07006560Version 7.59.0 (13 Mar 2018)
6561
6562Daniel Stenberg (13 Mar 2018)
6563- release: 7.59.0
6564
6565Kamil Dudka (13 Mar 2018)
6566- tests/.../spnego.py: fix identifier typo
6567
6568 Detected by Coverity Analysis:
6569
6570 Error: IDENTIFIER_TYPO:
6571 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: identifier_typo: Using "SuportedMech" appears to be a typo:
6572 * Identifier "SuportedMech" is only known to be referenced here, or in copies of this code.
6573 * Identifier "SupportedMech" is referenced elsewhere at least 4 times.
6574 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2651: identifier_use: Example 1: Using identifier "SupportedMech".
6575 curl-7.58.0/tests/python_dependencies/impacket/smbserver.py:2308: identifier_use: Example 2: Using identifier "SupportedMech".
6576 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:252: identifier_use: Example 3: Using identifier "SupportedMech" (2 total uses in this function).
6577 curl-7.58.0/tests/python_dependencies/impacket/spnego.py:229: remediation: Should identifier "SuportedMech" be replaced by "SupportedMech"?
6578
6579 Closes #2379
6580
6581Daniel Stenberg (13 Mar 2018)
6582- CURLOPT_COOKIEFILE.3: "-" as file name means stdin
6583
6584 Reported-by: Aron Bergman
6585 Bug: https://curl.haxx.se/mail/lib-2018-03/0049.html
6586
6587 [ci skip]
6588
6589- Revert "hostip: fix compiler warning: 'variable set but not used'"
6590
6591 This reverts commit a577059f92fc65bd6b81717f0737f897a5b34248.
6592
6593 The assignment really needs to be there or we risk working with an
6594 uninitialized pointer.
6595
6596Michael Kaufmann (12 Mar 2018)
6597- limit-rate: fix compiler warning
6598
6599 follow-up to 72a0f62
6600
6601Viktor Szakats (12 Mar 2018)
6602- checksrc.pl: add -i and -m options
6603
6604 To sync it with changes made for the libssh2 project.
6605 Also cleanup some whitespace.
6606
6607- curl-openssl.m4: fix spelling [ci skip]
6608
6609- FAQ: fix a broken URL [ci skip]
6610
6611Daniel Stenberg (12 Mar 2018)
6612- http2: mark the connection for close on GOAWAY
6613
6614 ... don't consider it an error!
6615
6616 Assisted-by: Jay Satiro
6617 Reported-by: Łukasz Domeradzki
6618 Fixes #2365
6619 Closes #2375
6620
6621- credits: Viktor prefers without accent
6622
6623- openldap: white space changes, fixed up the copyright years
6624
6625- openldap: check ldap_get_attribute_ber() results for NULL before using
6626
6627 CVE-2018-1000121
6628 Reported-by: Dario Weisser
6629 Bug: https://curl.haxx.se/docs/adv_2018-97a2.html
6630
6631- FTP: reject path components with control codes
6632
6633 Refuse to operate when given path components featuring byte values lower
6634 than 32.
6635
6636 Previously, inserting a %00 sequence early in the directory part when
6637 using the 'singlecwd' ftp method could make curl write a zero byte
6638 outside of the allocated buffer.
6639
6640 Test case 340 verifies.
6641
6642 CVE-2018-1000120
6643 Reported-by: Duy Phan Thanh
6644 Bug: https://curl.haxx.se/docs/adv_2018-9cd6.html
6645
6646- readwrite: make sure excess reads don't go beyond buffer end
6647
6648 CVE-2018-1000122
6649 Bug: https://curl.haxx.se/docs/adv_2018-b047.html
6650
6651 Detected by OSS-fuzz
6652
6653- BUGS: updated link to security process
6654
6655- limit-rate: kick in even before "limit" data has been received
6656
6657 ... and make sure to avoid integer overflows with really large values.
6658
6659 Reported-by: 刘佩东
6660 Fixes #2371
6661 Closes #2373
6662
6663- docs/SECURITY.md -> docs/SECURITY-PROCESS.md
6664
6665- SECURITY.md: call it the security process
6666
6667Michael Kaufmann (11 Mar 2018)
6668- Curl_range: fix FTP-only and FILE-only builds
6669
6670 follow-up to e04417d
6671
6672- hostip: fix compiler warning: 'variable set but not used'
6673
6674Daniel Stenberg (11 Mar 2018)
6675- HTTP: allow "header;" to replace an internal header with a blank one
6676
6677 Reported-by: Michael Kaufmann
6678 Fixes #2357
6679 Closes #2362
6680
6681- http2: verbose output new MAX_CONCURRENT_STREAMS values
6682
6683 ... as it is interesting for many users.
6684
6685- SECURITY: distros' max embargo time is 14 days now
6686
6687Patrick Monnerat (8 Mar 2018)
6688- curl tool: accept --compressed also if Brotli is enabled and zlib is not.
6689
6690Daniel Stenberg (5 Mar 2018)
6691- THANKS + mailmap: remove duplicates, fixup full names
6692
6693- [sergii.kavunenko brought this change]
6694
6695 WolfSSL: adding TLSv1.3
6696
6697 Closes #2349
6698
6699- RELEASE-NOTES/THANKS: synced with cc1d4c505
6700
6701- [Richard Alcock brought this change]
6702
6703 winbuild: prefer documented zlib library names
6704
6705 Check for existence of import and static libraries with documented names
6706 and use them if they do. Fallback to previous names.
6707
6708 According to
6709 https://github.com/madler/zlib/blob/master/win32/README-WIN32.txt on
6710 Windows, the names of the import library is "zdll.lib" and static
6711 library is "zlib.lib".
6712
6713 closes #2354
6714
6715Marcel Raad (4 Mar 2018)
6716- krb5: use nondeprecated functions
6717
6718 gss_seal/gss_unseal have been deprecated in favor of
6719 gss_wrap/gss_unwrap with GSS-API v2 from January 1997 [1]. The first
6720 version of "The Kerberos Version 5 GSS-API Mechanism" [2] from June
6721 1996 already says "GSS_Wrap() (formerly GSS_Seal())" and
6722 "GSS_Unwrap() (formerly GSS_Unseal())".
6723
6724 Use the nondeprecated functions to avoid deprecation warnings.
6725
6726 [1] https://tools.ietf.org/html/rfc2078
6727 [2] https://tools.ietf.org/html/rfc1964
6728
6729 Closes https://github.com/curl/curl/pull/2356
6730
6731Daniel Stenberg (4 Mar 2018)
6732- curl.1: mention how to add numerical IP addresses in NO_PROXY
6733
6734- CURLOPT_NOPROXY.3: mention how to list numerical IPv6 addresses
6735
6736- NO_PROXY: fix for IPv6 numericals in the URL
6737
6738 Added test 1265 that verifies.
6739
6740 Reported-by: steelman on github
6741 Fixes #2353
6742 Closes #2355
6743
6744- build: get CFLAGS (including -werror) used for examples and tests
6745
6746 ... so that the CI and more detects compiler warnings/errors properly!
6747
6748 Closes #2337
6749
6750Marcel Raad (3 Mar 2018)
6751- curl_ctype: fix macro redefinition warnings
6752
6753 On MinGW and Cygwin, GCC and clang have been complaining about macro
6754 redefinitions since 4272a0b0fc49a1ac0ceab5c4a365c9f6ab8bf8e2. Fix this
6755 by undefining the macros before redefining them as suggested in
6756 https://github.com/curl/curl/pull/2269.
6757
6758 Suggested-by: Daniel Stenberg
6759
6760Dan Fandrich (2 Mar 2018)
6761- unit1307: proper cleanup on OOM to fix torture tests
6762
6763Marcel Raad (28 Feb 2018)
6764- unit1309: fix warning on Windows x64
6765
6766 When targeting x64, MinGW-w64 complains about conversions between
6767 32-bit long and 64-bit pointers. Fix this by reusing the
6768 GNUTLS_POINTER_TO_SOCKET_CAST / GNUTLS_SOCKET_TO_POINTER_CAST logic
6769 from gtls.c, moving it to warnless.h as CURLX_POINTER_TO_INTEGER_CAST /
6770 CURLX_INTEGER_TO_POINTER_CAST.
6771
6772 Closes https://github.com/curl/curl/pull/2341
6773
6774- travis: update compiler versions
6775
6776 Update clang to version 3.9 and GCC to version 6.
6777
6778 Closes https://github.com/curl/curl/pull/2345
6779
6780Daniel Stenberg (26 Feb 2018)
6781- docs/MANUAL: formfind.pl is not accessible on the site anymore
6782
6783 Fixes #2342
6784
6785Jay Satiro (24 Feb 2018)
6786- curl-openssl.m4: Fix version check for OpenSSL 1.1.1
6787
6788 - Add OpenSSL 1.1.1 to the header/library version lists.
6789
6790 - Detect OpenSSL 1.1.1 library using its function ERR_clear_last_mark,
6791 which was added in that version.
6792
6793 Prior to this change an erroneous header/library mismatch was caused by
6794 lack of OpenSSL 1.1.1 detection. I tested using openssl-1.1.1-pre1.
6795
6796Viktor Szakats (23 Feb 2018)
6797- lib655: silence compiler warning
6798
6799 Closes https://github.com/curl/curl/pull/2335
6800
6801- spelling fixes
6802
6803 Detected using the `codespell` tool.
6804
6805 Also contains one URL protocol upgrade.
6806
6807 Closes https://github.com/curl/curl/pull/2334
6808
6809Daniel Stenberg (24 Feb 2018)
6810- projects/README: remove reference to dead IDN link/package
6811
6812 Reported-by: Stefan Kanthak and Rod Widdowson
6813
6814 Fixes #2325
6815
6816Jay Satiro (23 Feb 2018)
6817- [Rod Widdowson brought this change]
6818
6819 winbuild: Use macros for the names of some build utilities
6820
6821 - Add macros to the top of the makefile for rc and mt utilities so that
6822 it is easier to change their locations.
6823
6824 Bug: https://curl.haxx.se/mail/lib-2018-02/0075.html
6825 Reported-by: Stefan Kanthak
6826
6827 Closes https://github.com/curl/curl/issues/2329
6828
6829Daniel Stenberg (23 Feb 2018)
6830- TODO: remove "sha-256 digest", added in 2b5b37cb9109e7c2
6831
6832- curl_share_setopt.3: connection cache is shared within multi handles
6833
6834Jay Satiro (22 Feb 2018)
6835- [Rod Widdowson brought this change]
6836
6837 winbuild: Use CALL to run batch scripts
6838
6839 Co-authored-by: Stefan Kanthak
6840
6841 Closes https://github.com/curl/curl/issues/2330
6842 Closes https://github.com/curl/curl/pull/2331
6843
6844Patrick Monnerat (22 Feb 2018)
6845- os400: add curl_resolver_start_callback type to ILE/RPG binding
6846
6847Daniel Stenberg (22 Feb 2018)
6848- form.d: rephrased somewhat, added two example command lines
6849
6850Jay Satiro (21 Feb 2018)
6851- [Francisco Sedano brought this change]
6852
6853 url: Add option CURLOPT_RESOLVER_START_FUNCTION
6854
6855 - Add new option CURLOPT_RESOLVER_START_FUNCTION to set a callback that
6856 will be called every time before a new resolve request is started
6857 (ie before a host is resolved) with a pointer to backend-specific
6858 resolver data. Currently this is only useful for ares.
6859
6860 - Add new option CURLOPT_RESOLVER_START_DATA to set a user pointer to
6861 pass to the resolver start callback.
6862
6863 Closes https://github.com/curl/curl/pull/2311
6864
6865- lib: CURLOPT_HAPPY_EYEBALLS_TIMEOUT => CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
6866
6867 - In keeping with the naming of our other connect timeout options rename
6868 CURLOPT_HAPPY_EYEBALLS_TIMEOUT to CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.
6869
6870 This change adds the _MS suffix since the option expects milliseconds.
6871 This is more intuitive for our users since other connect timeout options
6872 that expect milliseconds use _MS such as CURLOPT_TIMEOUT_MS,
6873 CURLOPT_CONNECTTIMEOUT_MS, CURLOPT_ACCEPTTIMEOUT_MS.
6874
6875 The tool option already uses an -ms suffix, --happy-eyeballs-timeout-ms.
6876
6877 Follow-up to 2427d94 which added the lib and tool option yesterday.
6878
6879 Ref: https://github.com/curl/curl/pull/2260
6880
6881Patrick Monnerat (21 Feb 2018)
6882- sasl: prefer PLAIN mechanism over LOGIN
6883
6884 SASL PLAIN is a standard, LOGIN only a draft. The LOGIN draft says
6885 PLAIN should be used instead if available.
6886
6887Daniel Stenberg (21 Feb 2018)
6888- RELEASE-NOTES: synced with 2427d94c6
6889
6890Jay Satiro (20 Feb 2018)
6891- [Anders Bakken brought this change]
6892
6893 url: Add option CURLOPT_HAPPY_EYEBALLS_TIMEOUT
6894
6895 - Add new option CURLOPT_HAPPY_EYEBALLS_TIMEOUT to set libcurl's happy
6896 eyeball timeout value.
6897
6898 - Add new optval macro CURL_HET_DEFAULT to represent the default happy
6899 eyeballs timeout value (currently 200 ms).
6900
6901 - Add new tool option --happy-eyeballs-timeout-ms to expose
6902 CURLOPT_HAPPY_EYEBALLS_TIMEOUT. The -ms suffix is used because the
6903 other -timeout options in the tool expect seconds not milliseconds.
6904
6905 Closes https://github.com/curl/curl/pull/2260
6906
6907- hostip: fix 'potentially uninitialized variable' warning
6908
6909 Follow-up to 50d1b33.
6910
6911 Caught by AppVeyor.
6912
6913Daniel Stenberg (20 Feb 2018)
6914- TODO: warning if curl version is not in sync with libcurl version
6915
6916Jay Satiro (20 Feb 2018)
6917- [Anders Bakken brought this change]
6918
6919 CURLOPT_RESOLVE: Add support for multiple IP addresses per entry
6920
6921 This enables users to preresolve but still take advantage of happy
6922 eyeballs and trying multiple addresses if some are not connecting.
6923
6924 Ref: https://github.com/curl/curl/pull/2260
6925
6926Daniel Stenberg (20 Feb 2018)
6927- [Sergio Borghese brought this change]
6928
6929 examples/sftpuploadresume: resume upload via CURLOPT_APPEND
6930
6931 URL: https://curl.haxx.se/mail/lib-2018-02/0072.html
6932
6933- curl --version: show PSL if the run-time lib has it enabled
6934
6935 ... not of the #define was set at build-time!
6936
6937- TODO: "Support in-memory certs/ca certs/keys"
6938
6939 removed SSLKEYLOGFILE support (fixed)
6940
6941 removed "consider SSL patches" (outdated)
6942
6943 Closes #2310
6944
6945- CURLOPT_HEADER.3: clarify problems with different data sizes
6946
6947- test1556: verify >16KB headers to the header callback
6948
6949- header callback: don't chop headers into smaller pieces
6950
6951 Reported-by: Guido Berhoerster
6952 Fixes #2314
6953 Closes #2316
6954
6955- test1154: verify that long HTTP headers get rejected
6956
6957- http: fix the max header length detection logic
6958
6959 Previously, it would only check for max length if the existing alloc
6960 buffer was to small to fit it, which often would make the header still
6961 get used.
6962
6963 Reported-by: Guido Berhoerster
6964 Bug: https://curl.haxx.se/mail/lib-2018-02/0056.html
6965
6966 Closes #2315
6967
6968- CURLOPT_HEADERFUNCTION.3: fix typo from d939226813
6969
6970 Reported-by: Erik Johansson
6971 Bug: https://github.com/curl/curl/commit/d9392268131c1b8d18dec3fa30e0bded833a5db7#commitcomment-27607495
6972
6973- CURLOPT_HEADERFUNCTION.3: mention folded headers
6974
6975- TODO: 1.1 Option to refuse usernames in URLs
6976
6977 Also expanded the CURL_REFUSE_CLEARTEXT section with more ideas.
6978
6979- TODO: 1.7 Support HTTP/2 for HTTP(S) proxies
6980
6981- ssh: add two missing state names
6982
6983 The list of state names (used in debug builds) was out of sync in
6984 relation to the list of states (used in all builds).
6985
6986 I now added an assert to make sure the sizes of the two lists match, to
6987 aid in detecting this mistake better in the future.
6988
6989 Regression since c92d2e14cf, shipped in 7.58.0.
6990
6991 Reported-by: Somnath Kundu
6992
6993 Fixes #2312
6994 Closes #2313
6995
6996- Revert "KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy"
6997
6998 This reverts commit de9fac00c40db321d44fa6fbab6eb62ec4c83998.
6999
7000 Reported-by: Jay Satiro
7001
7002Jay Satiro (15 Feb 2018)
7003- non-ascii: fix implicit declaration warning
7004
7005 Follow-up to b46cfbc.
7006
7007 Caught by Travis CI.
7008
7009Daniel Stenberg (15 Feb 2018)
7010- travis: add build with iconv enabled
7011
7012 ... to verify it builds and works fine.
7013
7014 Ref: https://curl.haxx.se/mail/lib-2017-09/0031.html
7015
7016 Closes #1872
7017
7018- TODO: 18.18 retry on network is unreachable
7019
7020 Closes #1603
7021
7022- KNOWN_BUGS: 2.5 curl should not offer "ALPN: h2" when using https-proxy
7023
7024 Closes #1254
7025
7026Kamil Dudka (15 Feb 2018)
7027- nss: use PK11_CreateManagedGenericObject() if available
7028
7029 ... so that the memory allocated by applications using libcurl does not
7030 grow per each TLS connection.
7031
7032 Bug: https://bugzilla.redhat.com/1510247
7033
7034 Closes #2297
7035
7036Daniel Stenberg (15 Feb 2018)
7037- [Björn Stenberg brought this change]
7038
7039 TODO fixed: Detect when called from within callbacks
7040
7041 Closes #2302
7042
7043- BINDINGS: fix curb link (and remove ruby-curl-multi)
7044
7045 Reported-by: Klaus Stein
7046
7047- curl_gssapi: make sure this file too uses our *printf()
7048
7049- libcurl-security.3: separate file:// section
7050
7051 ... just to make it more apparent. Even if it repeats
7052 some pieces of information.
7053
7054- libcurl-security.3: the http://192.168.0.1/my_router_config case
7055
7056 Mentioned-By: Rich Moore
7057
7058- libcurl-security.3: mention the URL standards problems too
7059
7060- libcurl-security.3: split out from libcurl-tutorial.3
7061
7062 To make more accessible.
7063
7064 Merged in some new language from "URLs are dangerous things" as discussed on
7065 the mailing list a few days ago:
7066
7067 Bug: https://curl.haxx.se/mail/lib-2018-02/0013.html
7068
7069- RELEASE-NOTES: synced with e551910f8
7070
7071Patrick Monnerat (13 Feb 2018)
7072- tests: new tests for http raw mode
7073
7074 Test 319 checks proper raw mode data with non-chunked gzip
7075 transfer-encoded server data.
7076 Test 326 checks raw mode with chunked server data.
7077
7078 Bug: #2303
7079 Closes #2308
7080
7081Kamil Dudka (12 Feb 2018)
7082- tlsauthtype.d: works only if libcurl is built with TLS-SRP support
7083
7084 Bug: https://bugzilla.redhat.com/1542256
7085
7086 Closes #2306
7087
7088Patrick Monnerat (12 Feb 2018)
7089- smtp: fix processing of initial dot in data
7090
7091 RFC 5321 4.1.1.4 specifies the CRLF terminating the DATA command
7092 should be taken into account when chasing the <CRLF>.<CRLF> end marker.
7093 Thus a leading dot character in data is also subject to escaping.
7094
7095 Tests 911 and test server are adapted to this situation.
7096 New tests 951 and 952 check proper handling of initial dot in data.
7097
7098 Closes #2304
7099
7100Daniel Stenberg (12 Feb 2018)
7101- sha256: avoid redefine
7102
7103- [Douglas Mencken brought this change]
7104
7105 sha256: build with OpenSSL < 0.9.8 too
7106
7107 support for SHA-2 was introduced in OpenSSL 0.9.8
7108
7109 Closes #2305
7110
7111- [Bruno Grasselli brought this change]
7112
7113 README: language fix
7114
7115 s/off/from
7116
7117 Closes #2300
7118
7119Patrick Monnerat (12 Feb 2018)
7120- http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on
7121
7122 Bug: #2303
7123 Reported-By: Henry Roeland
7124
7125Daniel Stenberg (9 Feb 2018)
7126- get_posix_time: only check for overflows if they can happen!
7127
7128Michael Kaufmann (9 Feb 2018)
7129- schannel: fix "no previous prototype" compiler warning
7130
7131Jay Satiro (9 Feb 2018)
7132- [Mohammad AlSaleh brought this change]
7133
7134 content_encoding: Add "none" alias to "identity"
7135
7136 Some servers return a "content-encoding" header with a non-standard
7137 "none" value.
7138
7139 Add "none" as an alias to "identity" as a work-around, to avoid
7140 unrecognised content encoding type errors.
7141
7142 Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
7143
7144 Closes https://github.com/curl/curl/pull/2298
7145
7146Steve Holme (8 Feb 2018)
7147- build-openssl.bat: Follow up to 648679ab8e to suppress copy/move output
7148
7149- build-openssl.bat: Fixed incorrect move if destination build folder exists
7150
7151Michael Kaufmann (8 Feb 2018)
7152- schannel: fix compiler warnings
7153
7154 Closes #2296
7155
7156Steve Holme (7 Feb 2018)
7157- curl_addrinfo.c: Allow Unix Domain Sockets to compile under Windows
7158
7159 Windows 10.0.17061 SDK introduces support for Unix Domain Sockets.
7160 Added the necessary include file to curl_addrinfo.c.
7161
7162 Note: The SDK (which is considered beta) has to be installed, VS 2017
7163 project file has to be re-targeted for Windows 10.0.17061 and #define
7164 enabled in config-win32.h.
7165
7166Patrick Monnerat (7 Feb 2018)
7167- fnmatch: optimize processing of consecutive *s and ?s pattern characters
7168
7169 Reported-By: Daniel Stenberg
7170 Fixes #2291
7171 Closes #2293
7172
7173Steve Holme (6 Feb 2018)
7174- build-openssl.bat/build-wolfssl.bat: Build platform is optional
7175
7176 Whilst the compiler parameter is mandatory, platform is optional as it
7177 is automatically calculated by the :configure section.
7178
7179 This partially reverts commit 6d62d2c55d.
7180
7181Daniel Stenberg (6 Feb 2018)
7182- [Patrick Schlangen brought this change]
7183
7184 openssl: Don't add verify locations when verifypeer==0
7185
7186 When peer verification is disabled, calling
7187 SSL_CTX_load_verify_locations is not necessary. Only call it when
7188 verification is enabled to save resources and increase performance.
7189
7190 Closes #2290
7191
7192Steve Holme (5 Feb 2018)
7193- build-wolfssl.bat: Extend VC15 support to include Enterprise and Professional
7194
7195 ...and not just the Community Edition.
7196
7197- build-openssl.bat: Extend VC15 support to include Enterprise and Professional
7198
7199 ...and not just the Community Edition.
7200
7201Michael Kaufmann (5 Feb 2018)
7202- time-cond: fix reading the file modification time on Windows
7203
7204 On Windows, stat() may adjust the unix file time by a daylight saving time
7205 offset. Avoid this by calling GetFileTime() instead.
7206
7207 Fixes #2164
7208 Closes #2204
7209
7210Daniel Stenberg (5 Feb 2018)
7211- formdata: use the mime-content type function
7212
7213 Reduce code duplication by making Curl_mime_contenttype available and
7214 used by the formdata function. This also makes the formdata function
7215 recognize a set of more file extensions by default.
7216
7217 PR #2280 brought this to my attention.
7218
7219 Closes #2282
7220
7221- getdate: return -1 for out of range
7222
7223 ...as that's how the function is documented to work.
7224
7225 Reported-by: Michael Kaufmann
7226 Bug found in an autobuild with 32 bit time_t
7227
7228 Closes #2278
7229
7230- [Ben Greear brought this change]
7231
7232 build: fix termios issue on android cross-compile
7233
7234 Bug: https://curl.haxx.se/mail/lib-2018-01/0122.html
7235 Signed-off-by: Ben Greear <greearb@candelatech.com>
7236
7237- time_t-fixes: remove typecasts to 'long' for info.filetime
7238
7239 They're now wrong.
7240
7241 Reported-by: Michael Kaufmann
7242
7243 Closes #2277
7244
7245- curl_setup: move the precautionary define of SIZEOF_TIME_T
7246
7247 ... up to before it may be used for the TIME_T_MAX/MIN logic.
7248
7249 Reported-by: Michael Kaufmann
7250
7251- parsedate: s/#if/#ifdef
7252
7253 Reported-by: Michael Kaufmann
7254 Bug: https://github.com/curl/curl/commit/1c39128d974666107fc6d9ea15f294036851f224#commitcomment-27246479
7255
7256Patrick Monnerat (31 Jan 2018)
7257- fnmatch: pattern syntax can no longer fail
7258
7259 Whenever an expected pattern syntax rule cannot be matched, the
7260 character starting the rule loses its special meaning and the parsing
7261 is resumed:
7262 - backslash at the end of pattern string matches itself.
7263 - Error in [:keyword:] results in set containing :\[dekorwy.
7264
7265 Unit test 1307 updated for this new situation.
7266
7267 Closes #2273
7268
7269- fnmatch: accept an alphanum to be followed by a non-alphanum in char set
7270
7271 Also be more tolerant about set pattern syntax.
7272 Update unit test 1307 accordingly.
7273
7274 Bug: https://curl.haxx.se/mail/lib-2018-01/0114.html
7275
7276- fnmatch: do not match the empty string with a character set
7277
7278Jay Satiro (30 Jan 2018)
7279- build: fix windows build methods for curl_ctype.c
7280
7281 - Fix winbuild and the VS project generator to treat curl_ctype.{c,h} as
7282 curlx files since they are required by both src and lib.
7283
7284 Follow-up to 4272a0b which added curl_ctype.
7285
7286Daniel Stenberg (30 Jan 2018)
7287- progress-bar.d: update to match implementation
7288
7289 ... since commit 993dd5651a6
7290
7291 Reported-by: Martin Dreher
7292 Bug: https://github.com/curl/curl/pull/2242#issuecomment-361059228
7293
7294 Closes #2271
7295
7296- http2: set DEBUG_HTTP2 to enable more HTTP/2 logging
7297
7298 ... instead of doing it unconditionally in debug builds. It cluttered up
7299 the output a little too much.
7300
7301- [Max Dymond brought this change]
7302
7303 file: Check the return code from Curl_range and bail out on error
7304
7305- [Max Dymond brought this change]
7306
7307 Curl_range: add check to ensure "from <= to"
7308
7309- [Max Dymond brought this change]
7310
7311 Curl_range: commonize FTP and FILE range handling
7312
7313 Closes #2205
7314
7315- RELEASE-NOTES: synced with 811beab9f
7316
7317- curlver: next release will be 7.59.0
7318
7319- [Michał Janiszewski brought this change]
7320
7321 curl/curl.h: fix comment typo for CURLOPT_DNS_LOCAL_IP6
7322
7323 Closes #2275
7324
7325- time: support > year 2038 time stamps for system with 32bit long
7326
7327 ... with the introduction of CURLOPT_TIMEVALUE_LARGE and
7328 CURLINFO_FILETIME_T.
7329
7330 Fixes #2238
7331 Closes #2264
7332
7333- curl_easy_reset: clear digest auth state
7334
7335 Bug: https://curl.haxx.se/mail/lib-2018-01/0074.html
7336 Reported-by: Ruurd Beerstra
7337 Fixes #2255
7338 Closes #2272
7339
7340- [Adam Marcionek brought this change]
7341
7342 winbuild: make linker generate proper PDB
7343
7344 Link.exe requires /DEBUG to properly generate a full pdb file on release
7345 builds.
7346
7347 Closes #2274
7348
7349- curl: add --proxy-pinnedpubkey
7350
7351 To verify a proxy's public key. For when using HTTPS proxies.
7352
7353 Fixes #2192
7354 Closes #2268
7355
7356- configure: set PATH_SEPARATOR to colon for PATH w/o separator
7357
7358 The logic tries to figure out what the path separator in the $PATH
7359 variable is, but if there's only one directory in the $PATH it
7360 fails. This change make configure *guess* on colon instead of erroring
7361 out, simply because that is probably the more common character.
7362
7363 PATH_SEPARATOR can always be set by the user to override the guessing.
7364
7365 (tricky bug to reproduce, as in my case for example the configure script
7366 requires binaries in more than one directory so passing in a PATH with a
7367 single dir fails.)
7368
7369 Reported-by: Earnestly on github
7370 Fixes #2202
7371 Closes #2265
7372
7373- curl_ctype: private is*() type macros and functions
7374
7375 ... since the libc provided one are locale dependent in a way we don't
7376 want. Also, the "native" isalnum() (for example) works differently on
7377 different platforms which caused test 1307 failures on macos only.
7378
7379 Closes #2269
7380
7381Marcel Raad (29 Jan 2018)
7382- build: open VC15 projects with VS 2017
7383
7384 Previously, they were opened with Visual Studio 2015 by default, which
7385 cannot build them.
7386
7387Daniel Stenberg (29 Jan 2018)
7388- RELEASE-NOTES: synced with 094647fca
7389
7390- TODO: UTF-8 filenames in Content-Disposition
7391
7392 Closes #1888
7393
7394- KNOWN_BUGS: DICT responses show the underlying protocol
7395
7396 Closes #1809
7397
7398Jay Satiro (27 Jan 2018)
7399- [Alessandro Ghedini brought this change]
7400
7401 docs: fix typos in man pages
7402
7403 Closes https://github.com/curl/curl/pull/2266
7404
7405Patrick Monnerat (26 Jan 2018)
7406- lib555: drop text conversion and encode data as ascii codes
7407
7408 If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
7409 giving a result that is different from what is expected.
7410 This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
7411 to upload in ascii.
7412
7413 Bug: https://github.com/curl/curl/pull/1872
7414
7415Daniel Stenberg (26 Jan 2018)
7416- lib517: make variable static to avoid compiler warning
7417
7418 ... with clang on macos
7419
7420Patrick Monnerat (26 Jan 2018)
7421- lib544: sync ascii code data with textual data
7422
7423 Data mismatch caused test 545 to fail when character encoding
7424 conversion is enabled.
7425
7426 Bug: https://github.com/curl/curl/pull/1872
7427
7428Daniel Stenberg (25 Jan 2018)
7429- [Travis Burtrum brought this change]
7430
7431 GSKit: restore pinnedpubkey functionality
7432
7433 inadvertently removed in 283babfaf8d8f3bab9d3c63cea94eb0b84e79c37
7434
7435 Closes #2263
7436
7437- [Dair Grant brought this change]
7438
7439 darwinssl: Don't import client certificates into Keychain on macOS
7440
7441 Closes #2085
7442
7443- configure: fix the check for unsigned time_t
7444
7445 Assign the time_t variable negative value and then check if it is
7446 greater than zero, which will evaluate true for unsigned time_t but
7447 false for signed time_t.
7448
7449- parsedate: fix date parsing for systems with 32 bit long
7450
7451 Make curl_getdate() handle dates before 1970 as well (returning negative
7452 values).
7453
7454 Make test 517 test dates for 64 bit time_t.
7455
7456 This fixes bug (3) mentioned in #2238
7457
7458 Closes #2250
7459
7460- [McDonough, Tim brought this change]
7461
7462 openssl: fix pinned public key build error in FIPS mode
7463
7464 Here is a version that should work with all versions of openssl 0.9.7
7465 through 1.1.0.
7466
7467 Links to the docs:
7468 https://www.openssl.org/docs/man1.0.2/crypto/EVP_DigestInit.html
7469 https://www.openssl.org/docs/man1.1.0/crypto/EVP_DigestInit.html
7470
7471 At the very bottom of the 1.1.0 documentation there is a history section
7472 that states, " stack allocated EVP_MD_CTXs are no longer supported."
7473
7474 If EVP_MD_CTX_create and EVP_MD_CTX_destroy are not defined, then a
7475 simple mapping can be used as described here:
7476 https://wiki.openssl.org/index.php/Talk:OpenSSL_1.1.0_Changes
7477
7478 Closes #2258
7479
7480- [Travis Burtrum brought this change]
7481
7482 SChannel/WinSSL: Replace Curl_none_md5sum with Curl_schannel_md5sum
7483
7484- [Travis Burtrum brought this change]
7485
7486 SChannel/WinSSL: Implement public key pinning
7487
7488 Closes #1429
7489
7490- bump: towards 7.58.1
7491
7492- cookies: remove verbose "cookie size:" output
7493
7494 It was once used for some debugging/verifying logic but should never have
7495 ended up in git!
7496
7497- TODO: hardcode the "localhost" addresses
7498
7499- TODO: CURL_REFUSE_CLEARTEXT
7500
7501 An idea that popped up in discussions on twitter.
7502
7503- progress-bar: don't use stderr explicitly, use bar->out
7504
7505 Reported-By: Gisle Vanem
7506 Bug: https://github.com/curl/curl/commit/993dd5651a6c853bfe3870f6a69c7b329fa4e8ce#commitcomment-27070080
7507
7508GitHub (24 Jan 2018)
7509- [Gisle Vanem brought this change]
7510
7511 Fixes for MSDOS etc.
7512
7513 djgpp do have 'mkdir(dir, mode)'. Other DOS-compilers does not
7514 But djgpp seems the only choice for MSDOS anyway.
7515
7516 PellesC do have a 'F_OK' defined in it's <unistd.h>.
7517
7518 Update year in Copyright.
7519
7520- [Gisle Vanem brought this change]
7521
7522 Fix small typo.
7523
Elliott Hughes0128fe42018-02-27 14:57:55 -08007524Version 7.58.0 (23 Jan 2018)
7525
7526Daniel Stenberg (23 Jan 2018)
7527- RELEASE: 7.58.0
7528
7529- [Gisle Vanem brought this change]
7530
7531 progress-bar: get screen width on windows
7532
7533- test1454: --connect-to with IPv6 address w/o IPv6 support!
7534
7535- CONNECT_TO: fail attempt to set an IPv6 numerical without IPv6 support
7536
7537 Bug: https://curl.haxx.se/mail/lib-2018-01/0087.html
7538 Reported-by: John Hascall
7539
7540 Closes #2257
7541
7542- docs: fix man page syntax to make test 1140 OK again